监督学习核心 20% — 先选模型族,再谈调参

一句话:表格数据上,梯度提升树(GBDT/XGBoost/LightGBM)几乎总是第一个该试的模型;它训练快、不需要特征缩放、能处理缺失值。选对模型族比调参省下 80% 的时间。


🎯 这 20% 能解决哪些问题

常见困惑本质本页答案
线性回归、随机森林、XGBoost 怎么选数据形态与可解释性需求见「三类模型族」
交叉验证分数很高,上线就崩数据泄漏见「五个泄漏陷阱」
正样本只有 2%,模型全判负评估指标与采样策略错见「类别不平衡」
要不要做特征工程模型类型决定见「特征工程的分工」
调参调不动了怎么办优先级错了见「调参优先级」

一、三类模型族

模型族代表优点适合
线性/广义线性线性回归、Lasso、逻辑回归快、可解释、稳定特征少、需解释、样本少
树集成随机森林、GBDT、XGBoost、LightGBM表格数据最强、抗异常值结构化数据默认首选
核方法SVM、核回归中小样本高维有效样本 < 几万、维度高

决策顺序:先跑 GBDT 建立基线 → 若需可解释用逻辑回归/浅树 → 若样本极少(< 1000)试核方法或强正则线性 → 深度模型只在数据量大且非表格时才优先。


二、偏差与方差

[ \text{期望误差} = \text{偏差}^2 + \text{方差} + \text{噪声} ]

症状判断手段
训练误差高、验证也高高偏差(欠拟合)增特征、增复杂度、减正则
训练误差低、验证高高方差(过拟合)加数据、加正则、降复杂度
两者都低但线上差分布漂移检查采样、加时间维度

学习曲线是最好用的诊断工具:横轴样本量、纵轴训练/验证误差,两条曲线是否收敛一眼看出该加数据还是加模型。


三、交叉验证与五个泄漏陷阱

陷阱表现正确做法
预处理放全局归一化/填充在全量数据上做在每折训练集内 fit,再 transform 验证集
特征含未来信息用了结果发生后才有的字段按时间点构造特征
同源样本跨折同一用户/同一设备样本分到两折按实体分组(GroupKFold)
时间序列随机切分用未来预测过去时序切分(TimeSeriesSplit)
目标编码泄漏用全量标签算均值编码折内计算或加噪声平滑

记住:交叉验证分数虚高,90% 是泄漏,不是模型好。


四、类别不平衡

手段何时用注意
调整决策阈值首先考虑成本最低,但要定业务代价
类别权重 / scale_pos_weight中等不平衡简单有效
欠采样负样本极多会丢信息
过采样/SMOTE正样本极少高维时易过拟合
换指标永远用 PR-AUC、召回@精度 而非准确率

优先顺序:先换指标 → 再调阈值 → 再调权重 → 最后才采样。


五、特征工程的分工

模型需要的特征工程
线性模型必须:归一化、独热编码、非线性变换、交互项
树模型少量:类别编码(目标编码需防泄漏)、分箱可选
深度模型少:主要靠嵌入与表示学习

高价值特征的四类:时间窗口统计(近 7/30 天次数)、比率型(转化率)、序列位置(首次/最近一次)、交叉组合(品类×价格带)。


六、调参优先级

优先级内容
1数据与特征(清洗、加特征)
2交叉验证方案是否正确
3模型族的粗选
4关键超参:树的深度/叶子数、学习率、正则 λ
5细粒度网格/贝叶斯搜索

经验:调参通常只带来 1–3 个点,而加一个好特征常带来 5–20 个点。


📋 一页速查

问题答案
表格数据先试什么GBDT 系列
交叉验证虚高原因数据泄漏
不平衡先做什么换指标 + 调阈值
线性模型要归一化吗必须
树模型要归一化吗不需要
诊断工具学习曲线

🔗 相关链接

主题链接
机器学习概览机器学习
无监督学习无监督学习核心 20%
模型评估模型评估核心 20%
深度学习深度学习核心 20%
算法与数据结构算法与数据结构