如果你玩过“二十个问题猜东西”的游戏,就已经理解了决策树的思路。本文讲清决策树如何一步步提问把数据分开,以及随机森林如何用一堆各不相同的树投票,把单棵树的冲动判断变得更稳。
核心要点
- 决策树通过一系列判断条件把数据切分,每个叶子给出一个最终结论。
- 单棵树容易把训练集的偶然细节记住,在新数据上表现会明显变差。
- 随机森林让多棵树各看部分数据与部分特征,再投票取多数结果。
像猜谜一样做判断
你大概玩过这样的游戏:心里想一样东西,对方只能问是非题,二十个问题之内必须猜中。好的提问者会先问“是活的吗”,而不是“是红色的吗”,因为前者能把可能性砍掉一半。决策树做的就是同一件事:它把一系列判断条件组织成一棵树,从根节点一路走到叶子,每个叶子给出一个结论。
树的好处是直观。训练完成后可以把它画出来贴墙上,非技术人员也看得懂每一步的依据。这在需要说明“为什么”的领域价值很高。而且它对数据要求宽松:不需要标准化,数值型和类别型特征能混在一起用,缺失值也有办法处理。
挑选提问的顺序
关键问题变成了:每一步该问哪个条件?树的做法是遍历所有候选问题,挑出那个能把数据“分得最干净”的。所谓干净,指的是分开后各组内部尽量同质——如果一组里几乎全是同一类,说明这个提问很有信息量。常用的衡量指标有信息增益和基尼系数,思路都是让混乱程度下降得最多。
如果不加限制,树会长到每个叶子只剩一两个样本为止。这时它把训练集里的偶然细节全记住了,遇到新数据就判不准,也就是典型的过拟合。因此实践中一定会设限:限制最大深度、限制叶子最少样本数,或者干脆先长满再剪掉贡献小的分支。这些约束就是树的克制。
一片森林比一棵树稳
单棵树对数据扰动很敏感:换一批样本训练,树的结构可能大变。随机森林的应对方式是造一片林子。它从原始数据中有放回地反复抽样,得到许多略有差异的训练集,各自长一棵树;每次分裂时还只允许从随机抽出的部分特征里挑问题,进一步加大树与树之间的差异。
预测时,每棵树各投一票,分类取多数、回归取平均。因为每棵树的偏差方向不同,平均之后波动被抵消,结果往往比任何单棵树都稳。副作用是模型不再是一张能看懂的图,可解释性下降;不过它仍能给出“哪个特征更重要”的排序,这在筛选变量时非常实用。
常见问题
随机森林里树越多越好吗?
不是。数量增加会带来收益,但很快就会饱和,通常几百棵之后准确率的提升已微乎其微,训练开销却线性增长。真正更值得调的是单棵树的深度和每步可选的特征数,它们决定了树与树之间是否足够不同。
本文为 AI 科普内容,仅用于知识普及,不构成任何技术选型、投资或职业决策建议。