Appearance
淘天 Problem 3:房价预测
- 来源:
noai-mis/淘天/Problem 3 - 类型:Tabular ML
- 原始资料:
baseline.ipynb、NOAI竞赛实战课程大纲最终版.pdf - 题面完整性:baseline notebook 完整描述
- 解法资料完整性:完整 baseline
题面大意
Kaggle 经典 House Prices 回归任务:根据房屋 79 个特征预测 SalePrice。Notebook 提供从 EDA、缺失值处理、特征工程到回归模型训练的基线流程。课程大纲将本题定位为“特征工程”,重点不是单个模型,而是搭建完整特征工程流水线并与“不做特征工程直接建模”进行交叉验证对比。
数据特点
表格字段多,包含数值、类别、缺失值、顺序等级、房屋面积/质量/位置等。目标 SalePrice 右偏,取对数后更接近正态。很多特征与价格非线性相关,缺失本身也可能有含义。
考点
核心考点是表格回归特征工程:缺失值语义、类别编码边界、数值变换、组合特征、长尾目标处理、正则化特征选择和交叉验证。大纲还将 Box-Cox 作为对数变换的推广,并要求用 LassoCV 观察正则化强度变化时特征系数路径。
涉及知识点
- 缺失值语义填充。
- Label/One-hot encoding。
- Target Encoding。
- Skewness 与 log transform。
- Box-Cox 变换。
- Ridge/Lasso/ElasticNet。
- RandomForest/GradientBoosting。
- RMSE 与交叉验证。
解法思路
按课程大纲,推荐先搭建两个可对比的 pipeline:一个几乎不做特征工程,只做最基本缺失填充和编码;另一个完整处理缺失值、类别变量、数值变换和组合特征。两者都用同一套交叉验证和 RMSE,直接量化特征工程收益。
完整方案中,先合并训练和测试特征做一致预处理,但目标 SalePrice 只来自训练集。缺失值按字段语义处理:有些 NA 表示“没有该设施”,应填 None/0;有些是真缺失,用中位数、众数或基于模型填补。类别变量根据含义选择 One-Hot、Label Encoding 或 Target Encoding;顺序等级类可保留有序编码,普通类别更适合 one-hot。数值变量中,对偏态特征和目标 SalePrice 做 log1p 或 Box-Cox,预测后再反变换。
特征构造上加入总面积 TotalSF、房屋年龄、翻修距今时间、质量与面积交互项、分组聚合特征等。模型侧先用 Ridge/Lasso/ElasticNet 检查线性可解释 baseline,再用 RandomForest/GBDT 建模非线性。课程建议用 LassoCV 观察不同正则强度下系数变化路径,从而理解 L1 正则如何做特征选择;最后再做加权平均或 stacking。
可选/多种解法
无特征工程 baseline:用于量化工程收益。
完整特征工程 pipeline:缺失、编码、变换、组合特征一体化。
线性正则模型:在大量 one-hot 特征上很强,也适合观察系数。
GBDT/RandomForest:处理非线性和交互。
Stacking/加权平均:Kaggle 房价经典做法。
特殊技巧
目标取对数通常是关键,Box-Cox 可作为更一般的单调变换。TotalSF 等组合面积特征很强。训练/测试要一起编码,避免列不一致。LassoCV 的系数路径可以帮助识别稳定特征和冗余 one-hot。离群点会明显影响 RMSE,可在 EDA 中识别并谨慎处理。
调参优化
房价预测的关键是目标长尾和类别特征。建议比较原价、log1p、Box-Cox 和异常值裁剪后的结果;模型侧调 Ridge/Lasso/ElasticNet 正则、RandomForest/GBDT 的深度、叶子数、学习率、迭代轮数和 early stopping。特征工程中缺失填充策略、稀有类别合并阈值、Target Encoding 平滑强度、面积交互项、年份差值和分组聚合粒度都值得调。验证指标若是 RMSE/RMSLE,应严格按提交尺度计算,避免只看训练空间 loss。
注意事项
不要使用测试目标信息。若对全量数据做 scaler/encoder,一般可用测试特征参与无监督变换,但不能用测试标签。提交价格需还原到原尺度。
推广意义
这是表格回归特征工程的经典教材题,几乎覆盖结构化数据竞赛的常用套路。