跳到主内容

什么是决策树?怎么用一系列判断做分类

2026-10-06 发布 来源:我告诉你AI导航 阅读

银行审批一笔小额贷款时,AI 模型给出的拒绝理由常常是一串条件:收入不足、职业不稳定、有过逾期。这些条件按顺序排下来,就是一棵决策树。它把人类的判断过程直接写成模型,输出的不是一串权重,而是一棵可以画在纸上的树。这也是它在业务方那里...

银行审批一笔小额贷款时,AI 模型给出的拒绝理由常常是一串条件:收入不足、职业不稳定、有过逾期。这些条件按顺序排下来,就是一棵决策树。它把人类的判断过程直接写成模型,输出的不是一串权重,而是一棵可以画在纸上的树。这也是它在业务方那里最容易被接受的原因——不需要解释什么叫系数,只要顺着路径走一遍,就能看懂结论从哪来。这篇讲清它每次分裂在优化什么、为什么天生容易记住噪声、以及它的能力边界窄在哪里。

它把模型变成一张流程图

树的每个内部节点是一个判断条件,每条边是一个取值结果,每个叶子是一个结论。预测时从根节点往下走,落到哪个叶子就取哪个结论。这个形式和人类做判断的方式高度一致,所以它天然带有解释性:任何一个预测结果,都能还原成一条「如果……那么……」的规则链。规则链还能被单独拿出来审查,比如「年龄小于 25 且无固定职业的申请人被拒」,这条规则是否合理,业务方可以直接讨论,这在神经网络里是做不到的。可解释性在这里不需要事后附加说明,它本身就是模型的结构。

分裂时到底在优化什么

每长一层,算法要在所有特征和所有切分点里挑一个,让分开之后的两组更「纯」。纯度的衡量方式不同,长出来的树也不同:

准则怎么衡量纯度偏向适用任务
信息增益分裂前后信息熵的下降量偏好取值多的特征分类
基尼指数随机抽两个样本、类别不一致的概率计算更快,偏向较弱分类
方差下降子集内目标值的波动减少了多少对连续目标敏感回归

「偏好取值多的特征」这一条值得多说一句:如果一个特征是用户编号,每个取值只对应一个样本,按它分裂能让每个子集纯得不能再纯,但这对预测毫无帮助。这是信息增益的固有偏向,实践中要限制类别数,或者改用其他准则来平衡。

它为什么特别容易记住噪声

树的生长没有天然停止点。只要允许,它可以一直分裂到每个叶子只剩一个样本,此时训练误差为零,但学到的很大一部分是这批数据特有的偶然性。换一批同分布的数据,结构可能面目全非,这就是典型的过拟合。不稳定的根源在于分裂是贪心的:每一步只选当前看起来最优的切分,不回头看整体,一次误判会沿着子树一路传下去,越往下越难纠正。

控制复杂度靠三只手

预剪枝在长树的过程中就踩刹车:限制最大深度、要求叶子最少样本数、要求分裂带来的纯度提升超过某个门槛。后剪枝则先让树长满,再自底向上把贡献不大的分支砍掉,用验证集判断哪些分支多余。第三种是集成学习,把很多棵树组合起来投票,单棵树的不稳定被平均掉。前两种控制单棵树的复杂度,第三种绕开单棵树的不稳定,方向不同,解决的问题也不完全一样。

它的边界比想象中窄

树用垂直于坐标轴的切面去逼近决策边界,得到的是阶梯状的分界。如果真实关系是一条斜线,树只能用很多小方块去拼,要拼得准就得很深,深了又回到过拟合。它对特征的旋转变换也不友好:把坐标轴转 45 度,同一份数据可能长出完全不同的树。外推能力几乎为零,遇到训练集没覆盖的区间,叶子只能返回它见过的平均值,无论输入多大,输出都停在那里。此外,样本删掉几条,结构就可能变化,这让它在需要稳定解释的场合不好用——今天给出的规则链,明天可能就换了一副样子。

什么时候选它,什么时候换掉

需要向非技术方解释决策逻辑、特征类型混杂、数据量不大且希望快速得到可读规则时,单棵树是合适的选择。反过来,追求预测精度、数据有噪声、特征关系平滑时,它通常不是终点。实践中更常见的做法是把树当作积木:随机森林、梯度提升都是在它的基础上做组合,单棵树的缺点被抵消,可解释性则部分让渡出去。理解单棵树,是理解这一整类方法的前提。

速查:决策树的取舍清单

  • 分裂准则决定树的形状,信息增益偏爱多取值特征
  • 不限制深度就一定会过拟合,训练误差为零不等于模型好
  • 预剪枝省时间,后剪枝更准,两者可以叠加
  • 阶梯边界与外推缺失是结构性缺陷,调参改不了

反馈页面信息

请描述需要更正的地方,页面标题和网址会自动附上。

也可以发邮件至 [email protected]