利用波士顿房价数据集构建一个预测房价的线性模型,并实现房价预测 任务。 (1)数据准备; (2)模型构建与训练; (3)模型评估; (4)结果可视化。
时间: 2024-10-08 14:02:16 浏览: 40
利用波士顿房价数据集构建预测房价的线性模型通常分为以下几个步骤:
**步骤1:数据准备**
首先,你需要从sklearn库中导入`load_boston()`函数来加载波士顿房价数据集。这个数据集包含了13种属性(如人口密度、犯罪率等)以及对应的房屋价格。使用pandas库对数据进行预处理,查看数据的基本信息,例如缺失值处理、数据类型转换等。
```python
import pandas as pd
from sklearn.datasets import load_boston
boston_data = load_boston()
df = pd.DataFrame(boston_data.data, columns=boston_data.feature_names)
df['PRICE'] = boston_data.target # 添加目标变量列
```
**步骤2:模型构建与训练**
选择一个线性回归模型,比如`LinearRegression`,并将其实例化。将数据集分为特征(X)和目标变量(y)。然后,分割数据集为训练集和测试集,以便评估模型性能。
```python
from sklearn.model_selection import train_test_split
from sklearn.linear_model import LinearRegression
X_train, X_test, y_train, y_test = train_test_split(df.drop('PRICE', axis=1), df['PRICE'], test_size=0.2, random_state=42)
model = LinearRegression()
model.fit(X_train, y_train) # 训练模型
```
**步骤3:模型评估**
使用训练好的模型对测试集进行预测,然后计算一些评价指标,如均方误差(MSE)、R²分数等,来衡量模型的预测能力。
```python
from sklearn.metrics import mean_squared_error, r2_score
y_pred = model.predict(X_test)
mse = mean_squared_error(y_test, y_pred)
r2 = r2_score(y_test, y_pred)
print(f"Mean Squared Error: {mse}")
print(f"R² Score: {r2}")
```
**步骤4:结果可视化**
通过绘制实际价格与预测价格的散点图和残差图,可以直观地理解模型的效果。
```python
import matplotlib.pyplot as plt
plt.scatter(y_test, y_pred)
plt.xlabel("Actual Prices")
plt.ylabel("Predicted Prices")
plt.title("Price Prediction Scatter Plot")
residuals = y_test - y_pred
plt.figure()
plt.hist(residuals, bins=20)
plt.title("Residual Histogram")
plt.show()
```
阅读全文