python线性回归预测房价,实验内容:实现线性回归模型,预测房价。 输出结果: 1模型参数(权重和偏置)。 2测试集上的预测结果与实际房价的对比表。 3预测值与实际值的散点图,并绘制最佳拟合直线。 4计算并输出均方误差(MSE)或均方根误差(RMSE)。
时间: 2024-10-12 15:18:05 浏览: 49
Python中通过scikit-learn库可以方便地实现线性回归预测房价。下面是一个简单的步骤说明:
1. **模型参数**:
首先,我们需要导入所需的库,如`pandas`, `numpy`, 和 `sklearn`。假设我们有一个训练数据集df,包含特征列如'sqft_living'(平方英尺生活区)和目标变量'dprice'(房屋价格)。训练模型时,我们可以使用`LinearRegression()`类创建线性回归模型。训练得到的模型参数包括系数(weights,表示各特征对价格的影响程度)和截距(intercept,常数项),例如:
```python
from sklearn.linear_model import LinearRegression
model = LinearRegression()
model.fit(X_train, y_train)
coefficients = model.coef_
intercept = model.intercept_
```
2. **测试集预测**:
使用训练好的模型对测试集进行预测,比如测试数据X_test,预测结果存储在`y_pred`中:
```python
y_pred = model.predict(X_test)
```
3. **对比表与散点图**:
可以将`y_pred`和`y_test`(真实的测试集价格)制作成表格比较,同时用matplotlib绘制散点图,横轴为真实价格,纵轴为预测价格:
```python
comparison_table = pd.DataFrame({'Actual': y_test, 'Predicted': y_pred})
plt.scatter(y_test, y_pred, color='blue')
plt.plot(y_test, y_pred, color='red', linewidth=3)
plt.xlabel('Actual Prices')
plt.ylabel('Predicted Prices')
```
4. **评估指标**:
计算均方误差(MSE)或均方根误差(RMSE):
```python
from sklearn.metrics import mean_squared_error, mean_squared_log_error
mse = mean_squared_error(y_test, y_pred)
rmse = np.sqrt(mean_squared_error(y_test, y_pred))
print(f"Mean Squared Error (MSE): {mse}")
print(f"Root Mean Squared Error (RMSE): {rmse}")
```
阅读全文