机器学习进阶(12.5):树模型调参
第 12.5 篇:树模型调参与特征重要性原理补充篇
第十二篇讲了调参和特征重要性直觉:
- 怎么判断欠拟合/过拟合
- 哪些参数对模型复杂度影响最大
- 特征重要性怎么看
这里我们深入讲 为什么这些参数有效,以及特征重要性背后的数学原理。
1. 树模型复杂度和偏差-方差
回忆一下偏差-方差分解:
总误差=偏差2+方差+噪声 \text{总误差} = \text{偏差}^2 + \text{方差} + \text{噪声} 总误差=偏差2+方差+噪声
- 树深太浅 → 高偏差 → 欠拟合
- 树深太深 → 高方差 → 过拟合
调参的本质,就是控制偏差与方差的平衡。
2. 随机森林调参原理
1)n_estimators(树数量)
方差公式:
Var(yˉ)=1B2∑i=1BVar(yi)+1B2∑i≠jCov(yi,yj) \text{Var}(\bar{y}) = \frac{1}{B^2} \sum_{i=1}^B \text{Var}(y_i) + \frac{1}{B^2} \sum_{i\neq j} \text{Cov}(y_i, y_j) Var(yˉ)=B21i=1∑BVar(yi)+B21i=j∑Cov(yi,yj)
- 树越多,平均方差越低
- 树之间相关性越低,方差下降效果越明显
2)max_features(节点分裂随机特征)
- 随机选择特征,降低树之间相关性
- 减少整体方差,提高泛化能力
3)max_depth、min_samples_leaf(单棵树复杂度)
- 限制单棵树深度和叶子样本数 → 控制方差,防止过拟合
3. GBDT 调参原理
-
learning_rate:每棵树修正残差的步长- 学习率小 → 每步修正温和 → 泛化能力更好
- 学习率大 → 每步修正猛 → 更容易过拟合
-
n_estimators:树的数量- 树多 → 模型更强,但训练慢
-
max_depth:每棵树的深度- 浅树 → 弱学习器 → 每棵树只做局部修正
- 深树 → 单步修正大 → 易过拟合
-
subsample、colsample_bytree:随机采样样本和特征- 增加多样性 → 降低方差 → 提高稳健性
4. 特征重要性原理
1)基于分裂纯度的特征重要性
- 每次节点分裂,计算特征带来的纯度提升(Gini 或信息增益)
- 对所有树求平均 → 得到特征重要性分数
公式直观理解:
FI(f)=∑节点分裂用到特征 fΔ纯度×节点样本数总样本数 FI(f) = \sum_{\text{节点分裂用到特征 f}} \Delta \text{纯度} \times \frac{\text{节点样本数}}{\text{总样本数}} FI(f)=节点分裂用到特征 f∑Δ纯度×总样本数节点样本数
- (Δ纯度\Delta \text{纯度}Δ纯度) 可以是 Gini 或熵下降
2)置换重要性(Permutation Importance)
- 打乱某特征 → 测试模型性能下降多少
- 下降越多 → 这个特征越关键
公式:
FIperm(f)=score∗original−score∗permuted(f) FI_{perm}(f) = \text{score}*{\text{original}} - \text{score}*{\text{permuted(f)}} FIperm(f)=score∗original−score∗permuted(f)
这种方法更贴近“模型在预测上到底依赖这个特征多少”。
5. 特征重要性的注意事项
- 高重要性 ≠ 因果强
- 高度相关特征 → 分摊重要性
- 高基数类别 → 有时重要性被虚高
6. 小结
- 树模型调参本质:控制偏差和方差
- 随机森林靠多树投票降低方差,GBDT靠顺序纠错降低训练误差
- 特征重要性有两种常用方法:纯度提升、置换
- 理解原理,你就知道为什么调参和特征重要性分析有效,而不是盲调或盲信结果
DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。
更多推荐


所有评论(0)