python线性回归预测房价,o输出结果: 模型参数(权重和偏置)。 测试集上的预测结果与实际房价的对比表。 预测值与实际值的散点图,并绘制最佳拟合直线。 计算并输出均方误差(MSE)或均方根误差(RMSE)。
时间: 2024-10-12 15:17:51 浏览: 32
在Python中,我们可以使用scikit-learn库来实现线性回归模型并预测房价。这里是一个简单的示例,展示如何完成上述任务:
首先,假设我们有一个数据集`df`,包含特征列如'model_features'和目标变量`target`代表房价。
```python
import pandas as pd
from sklearn.model_selection import train_test_split
from sklearn.linear_model import LinearRegression
from sklearn.metrics import mean_squared_error, mean_squared_log_error
import matplotlib.pyplot as plt
# 加载和预处理数据
data = pd.read_csv('your_data.csv') # 替换为实际文件名
X = data['model_features']
y = data['target']
# 划分训练集和测试集
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)
# 创建并训练线性回归模型
model = LinearRegression()
model.fit(X_train, y_train)
# 获取模型参数(权重和偏置)
weights = model.coef_
intercept = model.intercept_
print(f"权重: {weights}")
print(f"偏置: {intercept}")
# 预测测试集结果
y_pred = model.predict(X_test)
# 对比测试集预测结果与实际房价
comparison_df = pd.DataFrame({'Actual': y_test, 'Predicted': y_pred})
print(comparison_df.head())
# 绘制预测值与实际值的散点图及最佳拟合直线
plt.scatter(y_test, y_pred)
plt.plot(y_test, y_pred, color='red', linewidth=2)
plt.xlabel('实际房价')
plt.ylabel('预测房价')
plt.title('房价预测散点图与拟合线')
plt.show()
# 计算并输出均方误差(MSE)和均方根误差(RMSE)
mse = mean_squared_error(y_test, y_pred)
rmse = np.sqrt(mse)
print(f"均方误差(MSE): {mse:.2f}")
print(f"均方根误差(RMSE): {rmse:.2f}")
```
在这个例子中,你需要将`'your_data.csv'`替换为实际的数据文件路径。运行完这个脚本后,你会得到模型参数、预测结果对比、散点图以及MSE和RMSE评估指标。
阅读全文