构建回归预测模型的关键是数据准备、特征处理、模型选择和评估四环节。需检查缺失值与异常值,编码类别变量并缩放数值特征,从线性模型起步逐步尝试复杂模型,用交叉验证评估并诊断残差与特征重要性。

用 Python 构建回归预测模型不难,关键在数据准备、特征处理、模型选择和评估这四个环节。跳过任意一步,结果都可能偏差很大。
准备数据并检查基本质量
回归模型对异常值和缺失值敏感。先用 pandas 读入数据,检查是否有空值、重复行或明显离群点。
- 用 df.isnull().sum() 查看每列缺失数量
- 用 df.describe() 快速看数值分布和标准差
- 对连续目标变量画直方图(plt.hist(y)),判断是否偏态,必要时做 log 或 Box-Cox 变换
处理特征:编码、缩放与构造
类别型变量要转成数值(如 one-hot 或 target encoding),数值型特征建议标准化(尤其当算法含距离计算,如 KNN 或 SVM)。
- 用 pd.get_dummies() 做独热编码,注意高基数类别列可考虑分组合并或嵌入
- 数值特征用 StandardScaler 或MinMaxScaler,记得对训练集拟合、再对测试集 transform
- 尝试构造有意义的组合特征,比如“面积 / 房间数”反映单间均值,“年龄 + 装修年份”得房龄,比原始字段更稳定
选模型、训模型、调参数
从简单线性模型起步,再逐步试更复杂模型。别一上来就上 XGBoost——容易过拟合且难解释。
立即学习“Python 免费学习笔记(深入)”;
- 先跑 LinearRegression 和Ridge/Lasso,看系数大小和 R²变化
- 树模型如 RandomForestRegressor 或XGBRegressor适合非线性关系,但需用 GridSearchCV 或BayesSearchCV调参
- 验证时务必用交叉验证(cross_val_score(model, X, y, cv=5, scoring=’neg_mean_squared_error’)),避免单次划分带来的偶然性
评估结果并诊断问题
不能只看 R²。重点看残差图、MAE、RMSE,以及在业务场景中是否可接受。
- 画真实值 vs 预测值散点图,理想情况应沿 y = x 线分布;若底部 / 顶部密集,说明模型低估 / 高估极端值
- 残差 vs 预测值图若呈漏斗形,说明异方差,可尝试对目标变量做变换或换用稳健损失函数
- 用 shap.Explainer 分析特征贡献,确认重要变量是否符合业务逻辑,防止数据泄露或伪相关
基本上就这些。模型不是越复杂越好,而是越合适越稳。多花时间理解数据,比调十轮超参更有效。