手把手教你用Python做线性回归房价预测实战附代码❝ 从数据清洗到模型解读一文掌握线性回归全流程 写在前面线性回归是数据分析中最基础也最常用的模型之一。无论你是刚入门Python的小白还是想巩固统计分析的同学这篇文章都能帮你理清思路学会如何用statsmodels和pandas搭建一个完整的回归模型。今天我们以房价预测为例带你一步步完成✅ 数据预处理分类变量处理✅ 变量相关性分析热力图✅ 模型构建与结果解读✅ 新数据预测准备好了吗Lets go 1. 数据准备与探索1.1 导入必要的库import statsmodels.api as sm import numpy as np import pandas as pd import seaborn as sns import matplotlib.pyplot as plt1.2 读取房价数据我们有一个house_price_simple.csv文件包含 1000 条房屋信息面积卧室数厕所数所在城市价格957.221C3973001998.731B719500...............❝ 数据字段说明面积房屋面积平方英尺卧室数、厕所数房间数量所在城市A、B、C、D 四个类别价格目标变量我们要预测的值1.3 处理分类变量——独热编码“所在城市”是分类变量不能直接放进回归模型。我们需要把它转换成虚拟变量dummy variables。# 生成虚拟变量并丢弃第一个类别避免多重共线性 data pd.get_dummies(data, columns[所在城市], dtypeint, drop_firstTrue)处理后原来的“所在城市”一列变成了三列所在城市_B、所在城市_C、所在城市_D。当某个房子在城市 A 时这三列全为 0作为基准组。 2. 变量相关性分析在建模前先看看各个变量之间的相关性避免多重共线性。# 计算相关系数绝对值 X data.drop(价格, axis1) X.corr().abs()输出结果面积卧室数厕所数城市_B城市_C城市_D面积1.000.050.000.010.040.03卧室数0.051.000.000.010.000.03厕所数0.000.001.000.020.020.00.....................❝ 相关系数都很小0.1说明没有明显的多重共线性可以放心建模。 绘制热力图更直观sns.heatmap(X.corr().abs(), annotTrue) plt.show()颜色越深表示相关性越强图中大部分格子颜色很浅符合预期 3. 构建线性回归模型3.1 添加常数项截距X sm.add_constant(X) # 加入一列全为1的常数项3.2 拟合模型y data[价格] model sm.OLS(y, X).fit() print(model.summary())3.3 模型结果解读模型整体指标R-squared 0.998模型解释了99.8%的房价变化拟合效果非常好F-statistic 7.766e04p值 0.00模型整体显著。Durbin-Watson 2.05残差无明显自相关。❝ 注意条件数Cond. No.较大1.02e04可能是由于变量尺度差异引起但不影响模型解释。 4. 利用模型进行预测现在我们有了一组新房源信息想预测它们的价格。4.1 读取新数据new_data pd.read_csv(house_price_predict_simple.csv)新数据预览面积卧室数厕所数所在城市957.222C1998.722C1641.541C............4.2 对新数据进行同样的预处理# 将“所在城市”转为分类变量确保类别与训练数据一致 new_data[所在城市] pd.Categorical(new_data[所在城市], categories[A,B,C,D]) # 生成虚拟变量drop_firstTrue new_data pd.get_dummies(new_data, columns[所在城市], dtypefloat, drop_firstTrue) # 添加常数项 new_data sm.add_constant(new_data)4.3 预测房价predictions model.predict(new_data) print(predictions)输出结果0 403709.34 1 715875.93 2 614231.46 3 340676.57 4 463414.68 5 802574.33 6 210259.56 7 513372.34 8 759026.24 9 439396.43 dtype: float64❝ 每一行对应新数据的预测价格单位元。 5. 总结通过这个实战案例我们完成了✅ 分类变量的独热编码处理✅ 相关性分析与可视化✅ 线性回归模型的建立与诊断✅ 对新数据进行预测线性回归虽然简单但背后的原理和注意事项很多。希望这篇文章能帮你打好基础未来可以尝试更多变量、交互项、正则化等进阶技巧。如果你觉得有用欢迎点赞、在看、转发三连 往期推荐[Python数据分析独立双样本t检验 vs z检验一文搞定][Python数据分析分析鸢尾花种类数据项目实战][Python数据分析可视化帕默群岛企鹅数据项目实战] 互动你在建模过程中遇到过什么坑欢迎留言分享我们一起讨论全文完