对于随机森林算法而言,预测过程非常简单,易于理解。理解的重点是其如何训练多个基学习器来构建强学习器。
1. 有放回采样
随机森林基于原始训练集通过有放回的采样(Bootstrap Sampling)产生不同的数据子集来训练多个决策树。
有放回采样,指从总体中每次抽取一个样本后,将该样本重新放再回总体中,然后再进行下一次抽样。
假设:你有一个装有 5 个不同颜色球的袋子,球的编号分别为:1、2、3、4、5。现在你想从这个袋子中抽取5次球,并且每次抽取时都将抽到的球放回袋子中。这就意味着每次抽取时,袋子里始终有5个球,且每个球都有相同的被抽中的机会。
例如:进行 5 次有放回抽样的结果可能是:3、1、2、1、5。我们可以看到 “1号球” 在这 5 次抽取中被抽中了 2 次,表明在有放回采样中,同一个样本可以被多次选中,也有的样本(如 4 号球)可能在这次抽样中没有被抽中。
有的同学可能会想,为什么采用这种采样方法?
假设:你想对一个案件的被告是否有罪做出判断。你可以自己去分析案情、审查证据,得出一个判断。但是,这个判断可能会受到个人偏见的影响,比如你对某类案件的固有看法、当时的情绪等等。
为了能够得到一个更加公正的判决,法庭会召集一个由 12 位陪审员组成的陪审团来一起审理案件。对于这些陪审员的选取,也要满足一些要求:
- 共同之处:每位陪审员都要具备基本的法律常识和判断能力,能够理解法庭上展示的证据、证词,并根据事实进行思考等等
- 不同之处:陪审员应来自不同的职业、年龄段、种族、性别等,这样能够确保多样性,使得陪审团代表社会的各个层面。
这样,每个陪审员基于各自的生活经验、价值观和对证据的理解,可能会得出不同的判断,有人认为被告有罪,有人认为无罪。最终,经过讨论和投票,陪审团能够综合各方意见,得出一个更公正、全面的结论。
上面的例子对应到随机森林思想中,基学习器之间要有一定的共性,相互之间也要保持一定差异性,这样才能够做出更加准确的预测。随机森林通过有放回的采样:
- 不同子集之间存在相同的部分,即:学习器之间能够具有一定的相同知识
- 不同子集之间存在不同的部分,即:学习器之间能够具有一定的差异性
到这里仍然需要注意的是,随机森林并不是仅仅依赖采样实现基学习器的差异性,也会引入一些其他的随机性增强这种差异性,使得基学习器更加有侧重。例如:随机特征选择。
2. 接着思考
为什么随机森林集成多个决策树能够提高预测性能?
假设单个弱学习器的准确率是 0.6,则:
- 当强学习器由 1 个决策树组成时,其准确率为 0.6
- 当强学习器由 3 个决策树组成时(至少有2个预测正确),其准确率为:0.648
- 当强学习器由 5 个决策树组成时(至少有3个预测正确),其准确率为:0.683
- 当强学习器由 7 个决策树组成时(至少有4个预测正确),其准确率为:0.710
- 当强学习器由 9 个决策树组成时(至少有5个预测正确),其准确率为:0.733
- … 以此类推
这里也需要注意两点:
- 虽然增加基学习器理论上能够提升学习能力,但是也可能存在过拟合的问题
- 随机森林似乎对每个弱学习器要求就没有那么高,只需要高于随机猜测
为什么随机森林集成多个决策树能够提高泛化能力?
集成多个学习器之所以能够提高泛化能力,是因为每个学习器在学习过程中关注的重点不同,使得受到异常数据或噪声的影响也不同。
- 每个学习器在面对异常数据或噪声时的反应可能不同。有些学习器可能对噪声更敏感,容易被干扰,而另一些学习器则可能对噪声有一定的鲁棒性,不太受影响。例如:某个学习器在异常数据的影响下做出错误判断,其他学习器仍有可能给出正确的预测,从而降低整体模型对异常数据的敏感度,增强模型的鲁棒性。
- 不同的学习器会学习到数据中的不同模式或特征。例如:某个学习器可能擅长捕捉数据的全局趋势、另一个学习器可能更专注于局部的特殊情况或异常点、还有一个学习器可能更注重某些特定特征(例如颜色、形状等)对结果的影响。由于每个学习器的侧重点不同,它们在做预测时依赖的信息和规则也会有所不同。通过集成多个学习器,我们可以充分利用它们各自擅长的部分,从而做出更加全面和准确的决策。