03 决策树:从相亲决策到规则引擎与可解释性

总:决策树是唯一一个”人类能直接读懂”的模型,这个特质让它永远不会被淘汰——现在活在三个地方:风控规则引擎、高监管行业的可解释模型、GBDT/XGBoost 的基学习器。XGBoost 本质上就是”决策树的集成”,学树就是学 GBDT 的地基。


一、研究定位

  • 单棵决策树在精度上早已不构成竞争力,但可解释性 + 特征自动离散化 + 对量纲免疫让它活在规则系统和基学习器两个岗位上
  • 三棵树的讨论重点(ID3/C4.5/CART)收敛到 CART:二叉、基尼指数、可分类可回归
  • 常见讨论问题:“树模型为什么不需要标准化?”、“基尼系数 vs 熵选哪个?”、“预剪枝后剪枝怎么选?”

二、机制回顾

  • 结构:内部节点=特征判断,分支=判断输出,叶节点=预测结果;构建三步:特征选择 → 生成 → 剪枝
  • 三棵树:ID3(信息增益,偏爱取值多的特征)/ C4.5(增益率修正,可连续可缺失)/ CART(基尼指数,二叉,分类回归通吃)
  • 基尼指数:Gini = 1 − ∑pi2,越小越纯,计算比熵便宜(没有 log)
  • CART 分类树用基尼、回归树用平方误差;叶节点输出 = 多数类别 / 均值
  • 剪枝:预剪枝(边建边剪,快但短视、欠拟合风险)/ 后剪枝(建完自底向上剪,效果好但开销大)

三、研究与应用脉络

3.1 风控规则引擎:决策树的”延续形态”

银行/互金风控的第一道闸门就是规则树,形式和决策树一模一样:

IF 年龄 < 22 AND 无社保 THEN 拒绝
IF 多头借贷次数 > 8 AND 近30天申请 > 5 THEN 拒绝

和模型的关系:规则在前挡明确坏人(成本低、可审计),模型在后算模糊概率。规则从哪来?早期人工,现在主流是”树模型导出规则 + 人工审核”——在数据上训练浅层树(depth 2-3),把每条根到叶路径转成一条规则,效果和业务含义同时可检查。

3.2 可解释性:SHAP 是现代常用参照

  • 单棵树”可读”≠“可信”,深树的路径一样反直觉
  • 现在的说服工具是 SHAP:每个特征对单个预测的贡献值(博弈论 Shapley value),树模型有 TreeSHAP 多项式加速
  • 医疗、司法、信贷场景的标配:不仅给预测,还给出”为什么”,监管审计直接看 SHAP 图
  • 讽刺的是 LLM 时代可解释性反而倒退,所以生产 LLM 系统普遍配规则/树模型做兜底和审计

3.3 GBDT/XGBoost 的基学习器(最重要的去向)

  • 现代Boosting 系几乎全用** CART 回归树**当基学习器(分类任务也用回归树拟合梯度/残差,输出的是 log-odd 增量)
  • 所以 CART 的每个细节都延续:基尼/平方误差分裂、min_samples_leaf 控制叶节点、max_depth 控制……全部原样出现在 XGBoost/LightGBM 的超参里
  • 概念链条:决策树 → CART → GBDT 拟合负梯度 → XGBoost 加二阶泰勒+正则 → LightGBM 直方图加速,一条线串下来

3.4 sklearn 实操要点

DecisionTreeClassifier(criterion='gini', max_depth=None,
                       min_samples_split=2, min_samples_leaf=1)
# 树模型不用标准化!它只找分裂点,不看距离和梯度
# plot_tree(estimator, feature_names=...) 可直接可视化
# feature_importances_ 自带特征重要性

注意 max_depth 是最常用的预剪枝手段,生产上几乎从不让它长满。

四、研究问题与讨论

问题: 树模型为什么不需要标准化? 讨论: 树只关心特征排序后的分裂点(“x>3.5 吗”),分裂点的选择对单调变换不敏感;标准化只改变量纲不改变序,所以完全不必要。同理对异常点也鲁棒——异常点再大也只是一个方向上的分裂点。

问题: ID3、C4.5、CART 区别? 讨论: ID3 用信息增益,只能离散特征,偏爱取值多的特征(极端例子用 ID 划分每叶一个样本,增益最大但零泛化);C4.5 用信息增益率修正偏向,可处理连续值和缺失值,但要求数据驻留内存;CART 用基尼指数,二叉树,分类回归通吃,计算省 log。现代实现基本都是 CART 系。

问题: 预剪枝和后剪枝怎么选? 讨论: 预剪枝边生成边判断,省时间但有短视问题(当前划分无效≠后续无效),有欠拟合风险;后剪枝建完整树后自底向上考察,泛化通常更好但训练开销大。工程折中:用 max_depth/min_samples_leaf 做预剪枝 + 交叉验证定深度,效果接近后剪枝成本可控。

五、后续实验

决策树教给我的是“贪心 + 不纯度”这套划分哲学,以及一个商业洞察:模型能被读懂本身就是一种价值,在监管场景这个价值可以超过精度。 动手项:拿泰坦尼克数据训一棵 max_depth=3 的树,plot_tree 画出来,再把每条路径转写成 if-else 规则——这就是给风控产品经理看的”模型说明书”。

六、研究向延伸

决策树后续可以从“可读”转向“可审计”。同一任务上比较浅层树、GBDT 和规则引擎:观察单条路径是否符合领域知识,剪枝后性能与可解释性如何变化,SHAP 在相关特征存在时是否稳定。

值得补充的实验是反事实检查:轻微改变一个输入特征,模型路径和预测是否发生不合理跳变。这个检查能暴露树模型边界分裂带来的不连续性,也能帮助判断哪些规则适合进入人工审核。

暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇