2.调用scikit-learn库中波士顿房价数据集; 3.将波士顿房价数据集划分为训练集和测试集; 4.利用lasso回归预测测试集房价,同时利用梯度下降法优化lasso回归的参数,寻找最优参数。 5.将预测结果四舍五入保留2位浮点数。 6.以点的顺序为横坐标,画出预测值与真实值的对比图。 7.用RMSE(均方根误差)和MAE(平均绝对误差)作为评价指标评估函数预测效果优劣并打印出来。 需要用到的库: sklearn<1.2、matplotlib、numpy。 可能需要用到的函数: from sklearn.datasets import load_boston # 导入波士房价顿数据集 from sklearn.model_selection import train_test_split # 导入训练集与测试集划分函数
时间: 2024-02-25 13:54:40 浏览: 209
好的,这是一个关于机器学习的问题,以下是代码实现:
```python
from sklearn.datasets import load_boston
from sklearn.linear_model import Lasso
from sklearn.metrics import mean_squared_error, mean_absolute_error
from sklearn.model_selection import train_test_split
import matplotlib.pyplot as plt
import numpy as np
# 加载波士顿房价数据集
boston = load_boston()
# 将数据集划分为训练集和测试集
X_train, X_test, y_train, y_test = train_test_split(boston['data'], boston['target'], test_size=0.2, random_state=42)
# 使用lasso回归模型预测测试集房价
model = Lasso()
model.fit(X_train, y_train)
y_pred = model.predict(X_test)
# 使用梯度下降法优化lasso回归的参数
# TODO
# 将预测结果四舍五入保留2位浮点数
y_pred = np.round(y_pred, 2)
# 以点的顺序为横坐标,画出预测值与真实值的对比图
plt.plot(range(len(y_test)), y_test, 'r.')
plt.plot(range(len(y_pred)), y_pred, 'b.')
plt.legend(['true', 'pred'])
plt.show()
# 用RMSE和MAE作为评价指标评估函数预测效果优劣并打印出来
rmse = np.sqrt(mean_squared_error(y_test, y_pred))
mae = mean_absolute_error(y_test, y_pred)
print('RMSE:', rmse)
print('MAE:', mae)
```
注意,第4步中的参数优化部分使用梯度下降法是一个比较复杂的问题,需要根据具体情况来选择合适的优化算法和参数。以上代码仅供参考,具体实现需要根据实际情况进行调整。
阅读全文
相关推荐















