1.线性回归和随机森林建模 from sklearn.ensemble import RandomForestRegressor from sklearn.linear_model import LinearRegression 2.预测房价并绘制对比图
时间: 2024-02-03 17:03:40 浏览: 89
好的,下面是具体的代码实现过程:
```
# 导入需要的库和数据集
import pandas as pd
import numpy as np
from sklearn.ensemble import RandomForestRegressor
from sklearn.linear_model import LinearRegression
from sklearn.model_selection import train_test_split
import matplotlib.pyplot as plt
# 读取数据集
data = pd.read_csv('housing.csv')
# 数据预处理
X = data.iloc[:,:-1]
y = data.iloc[:,-1]
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)
# 线性回归建模
lr = LinearRegression()
lr.fit(X_train, y_train)
# 随机森林建模
rf = RandomForestRegressor(n_estimators=100, random_state=42)
rf.fit(X_train, y_train)
# 预测房价并绘制对比图
y_pred_lr = lr.predict(X_test)
y_pred_rf = rf.predict(X_test)
plt.figure(figsize=(10,6))
plt.scatter(y_test, y_pred_lr, color='blue', label='Linear Regression')
plt.scatter(y_test, y_pred_rf, color='green', label='Random Forest')
plt.xlabel('Actual Price')
plt.ylabel('Predicted Price')
plt.legend()
plt.show()
```
解释一下上述代码的步骤:
1. 导入需要的库和数据集:我们需要导入 pandas、numpy、sklearn 中的随机森林和线性回归模型、train_test_split 方法用于数据集划分和 matplotlib 用于绘图。同时,我们需要读取包含房屋信息的数据集 housing.csv。
2. 数据预处理:我们将数据集划分为训练集和测试集,以便于模型训练和评估。
3. 线性回归建模:我们使用 sklearn 中的 LinearRegression() 方法建立线性回归模型,并用训练集拟合该模型。
4. 随机森林建模:我们使用 sklearn 中的 RandomForestRegressor() 方法建立随机森林模型,并用训练集拟合该模型。
5. 预测房价并绘制对比图:我们使用建立好的线性回归模型和随机森林模型对测试集进行预测,并将预测结果绘制成散点图,其中 x 轴为实际房价,y 轴为预测房价,蓝色点代表线性回归预测结果,绿色点代表随机森林预测结果。
希望这个例子能够帮助你更好地理解线性回归和随机森林建模的过程,以及如何预测房价并绘制对比图。
阅读全文