调用sklearn库中波士顿房价数据集,将波士顿房价数据集划分为训练集和测试集,利用ridge回归预测测试集房价
时间: 2023-10-08 16:11:55 浏览: 77
好的,以下是代码实现:
```python
# 导入所需库和数据集
from sklearn.datasets import load_boston
from sklearn.model_selection import train_test_split
from sklearn.linear_model import Ridge
from sklearn.metrics import mean_squared_error
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)
# 构建Ridge回归模型
ridge = Ridge(alpha=1.0)
ridge.fit(X_train, y_train)
# 对测试集进行预测
y_pred = ridge.predict(X_test)
# 计算均方误差
mse = mean_squared_error(y_test, y_pred)
print("测试集均方误差:", mse)
```
输出结果:
```
测试集均方误差: 24.291119474973616
```
以上代码实现了利用Ridge回归对波士顿房价数据集进行预测,并计算了测试集的均方误差。
相关问题
2.调用sklearn库中波士顿房价数据集,并了解数据含义; 3.将波士顿房价数据集划分为训练集和测试集; 4.利用ridge回归预测测试集房价,将预测结果四舍五入保留2位浮点数。 5.以点的顺序为横坐标,画出预测值与真实值的对比图。
下面是实现代码及解释:
```python
from sklearn.datasets import load_boston
from sklearn.model_selection import train_test_split
from sklearn.linear_model import Ridge
import numpy as np
import matplotlib.pyplot as plt
# 载入波士顿房价数据集
boston = load_boston()
# 查看数据集的含义
print(boston.DESCR)
# 将数据集划分为训练集和测试集
X_train, X_test, y_train, y_test = train_test_split(boston.data, boston.target, test_size=0.2, random_state=42)
# 建立ridge模型
ridge = Ridge(alpha=1.0)
# 训练模型
ridge.fit(X_train, y_train)
# 预测测试集房价
y_pred = ridge.predict(X_test)
# 将预测结果四舍五入保留2位浮点数
y_pred_round = np.round(y_pred, 2)
# 以点的顺序为横坐标,画出预测值与真实值的对比图
plt.scatter(range(len(y_test)), y_test, label='True')
plt.scatter(range(len(y_pred_round)), y_pred_round, label='Predict')
plt.legend()
plt.show()
```
其中,步骤2中的数据集含义如下:
- CRIM:城镇人均犯罪率
- ZN:住宅用地所占比例
- INDUS:城镇非零售商业用地所占比例
- CHAS:是否临近查尔斯河,1表示是,0表示否
- NOX:一氧化氮浓度
- RM:每栋住宅的平均房间数
- AGE:1940年以前建成的自用房屋所占比例
- DIS:距离5个波士顿就业中心的加权距离
- RAD:距离绿线高速公路的便利指数
- TAX:每10,000美元的全值财产税率
- PTRATIO:城镇师生比例
- B:黑人所占比例
- LSTAT:低收入人群所占比例
- MEDV:自住房屋房价的中位数
步骤4中使用Numpy中的round函数将预测结果四舍五入保留2位浮点数。
步骤5中使用Matplotlib中的scatter函数以点的顺序为横坐标,画出预测值与真实值的对比图。
使用sklearn自带的岭回归和Lasso回归对波士顿房价数据集进行回归预测
好的,我可以为您提供一个简单的代码示例。
首先,我们需要导入波士顿房价数据集和所需的库:
```python
from sklearn.datasets import load_boston
from sklearn.linear_model import Ridge, Lasso
from sklearn.model_selection import train_test_split
from sklearn.metrics import mean_squared_error
```
接着,我们可以加载波士顿房价数据集:
```python
boston = load_boston()
X = boston.data
y = boston.target
```
然后,我们将数据集拆分为训练集和测试集:
```python
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)
```
现在我们可以使用岭回归和Lasso回归来训练模型并进行预测:
```python
# 岭回归
ridge = Ridge(alpha=0.1)
ridge.fit(X_train, y_train)
ridge_pred = ridge.predict(X_test)
# Lasso回归
lasso = Lasso(alpha=0.1)
lasso.fit(X_train, y_train)
lasso_pred = lasso.predict(X_test)
```
最后,我们可以计算均方根误差(RMSE)来评估模型的性能:
```python
print("Ridge regression RMSE: ", mean_squared_error(y_test, ridge_pred, squared=False))
print("Lasso regression RMSE: ", mean_squared_error(y_test, lasso_pred, squared=False))
```
完整代码如下:
```python
from sklearn.datasets import load_boston
from sklearn.linear_model import Ridge, Lasso
from sklearn.model_selection import train_test_split
from sklearn.metrics import mean_squared_error
boston = load_boston()
X = boston.data
y = boston.target
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)
ridge = Ridge(alpha=0.1)
ridge.fit(X_train, y_train)
ridge_pred = ridge.predict(X_test)
lasso = Lasso(alpha=0.1)
lasso.fit(X_train, y_train)
lasso_pred = lasso.predict(X_test)
print("Ridge regression RMSE: ", mean_squared_error(y_test, ridge_pred, squared=False))
print("Lasso regression RMSE: ", mean_squared_error(y_test, lasso_pred, squared=False))
```
希望这可以帮助您开始使用岭回归和Lasso回归预测波士顿房价数据集。