使用jupyter notebook完成代码1.线性回归最小二乘法、梯度下降法、岭回归对波士顿房价案例进行模型构建。2.对于广告案例,在原三个特征值的基础上,增加特征值test1与test2(随机数产生),并使用岭回归完成模型构建。
时间: 2024-10-25 21:11:30 浏览: 91
基于jupyter notebook的python编程—–利用梯度下降算法求解多元线性回归方程,并与最小二乘法求解进行精度对比
在Jupyter Notebook中完成这些任务需要先安装必要的库如`numpy`, `pandas`, `scikit-learn`等。我们将分步骤描述:
1. **线性回归(最小二乘法)**:
- 导入数据(例如使用`load_boston()`函数加载波士顿房价数据集)
- 数据预处理(拆分数据集为训练集和测试集)
- 创建LinearRegression模型,拟合数据
```python
from sklearn.datasets import load_boston
from sklearn.model_selection import train_test_split
from sklearn.linear_model import LinearRegression
boston = load_boston()
X_train, X_test, y_train, y_test = train_test_split(boston.data, boston.target)
lr_model = LinearRegression()
lr_model.fit(X_train, y_train)
```
2. **梯度下降法**:
- 定义代价函数和梯度更新规则
- 迭代优化模型参数
```python
def gradient_descent(y, X, w, alpha):
m = len(y)
J = (1/(2*m)) * np.sum((y - np.dot(X, w))**2) # 代价函数
dw = -(1/m) * np.dot(X.T, (y - np.dot(X, w))) + alpha * w # 梯度
return J, dw
learning_rate = 0.01
w = np.zeros(X_train.shape[1])
for i in range(1000): # 遍历次数
J, dw = gradient_descent(y_train, X_train, w, learning_rate)
w += dw
```
3. **岭回归(Lasso Regression)**:
- 使用`Lasso`模型替换`LinearRegression`
```python
from sklearn.linear_model import Lasso
lasso_model = Lasso(alpha=0.1) # 设置正则化参数
lasso_model.fit(X_train, y_train)
```
4. **广告案例**:
- 对广告数据添加新特征test1和test2
```python
ad_data = pd.concat([boston.data, test1.reshape(-1, 1), test2.reshape(-1, 1)], axis=1)
X_ad = ad_data.drop('PRICE', axis=1) # 假设'PRICE'是目标变量
X_ad_train, X_ad_test, y_ad_train, _ = train_test_split(X_ad, boston.target, test_size=0.2)
lasso_ad_model = Lasso(alpha=0.1)
lasso_ad_model.fit(X_ad_train, y_ad_train)
```
阅读全文