初识机器学习:随机森林

287 阅读3分钟

携手创作,共同成长!这是我参与「掘金日新计划 · 8 月更文挑战」的第15天,点击查看活动详情

上一篇(14. 初识机器学习:决策树 )介绍了易于理解的决策树算法,在构建决策树的过程中,我们的目的是从数据集的所有变量中,找到最佳的变量组合,这些变量组合会作为对应的二元问题组,通过这些二元问题,将数据集不断拆分,最终预测出数据点的分类。

决策树的原理虽然简单,但是找出足够合适的变量组合并不容易,有时需要大量验证,并且很可能会出现过拟合的问题。因此,我们需要一种办法来消除决策树的这些缺点。

随机森林(Random Forests, RF)是一个包含多个决策树的分类器,并且其输出的类别是由个别树输出的类别的众数而定。这些决策树是通过从数据集的预测变量中随机组合成不同的变量组,来生成的,这些决策树聚合起来,就是随机森林。

原理

随机森林能得到比单个决策树更优的结果,是基于这样一个事实:

虽然错误的预测结果可能有很多,但是正确的只有一个。通过组合具有不同优缺点的模型,往往能强化正确的预测结果,同时使得错误的结果相互抵消。

因此,随机森里是决策树的集成模型,也就是说,随机森林是一个通过组合不同的决策树来提高准确度的模型。随机森林中的每一个决策树会产生一个预测结果,而随机森林会使用虽有决策树的结果,来得到最终的预测结果。

这里组合多个结果的方法可以是少数服从多数或者平均值等方法。

根据集成模型的定义,随机森林应该得出比其包含的大多数决策树都更优的预测结果,比如下图所示:

前面我们也提到,通过集成模型(随机森林),可以让正确的预测结果相互强化,而错误的预测相互抵消。又因为,多数情况下,正确的预测只有一种,而错误的结果多种多样。因此,在生成这些决策树的时候,就需要他们之间不能犯同样的错误。如何能让这些决策树不犯同样的错误呢?

决策树都是通过训练数据集和其特征变量生成的,因此,我们可以让生成决策树的数据集和特征变量组彼此不同,来让决策树之间的关联度最小。

具体来说,每个决策树都是从训练数据集的一个随机子集训练得到,并且使用的是这些数据的随机预测变量自己。通过这种方法,生成大量的决策树,不仅解决了降低决策树之间关联度的问题,也同时避免了过拟合的问题。

这种方法也叫做自助聚集法。

总结

通过使用集成方法和自助聚集法,随机森林可以产生比决策树更准确的预测结果。但是,相较于决策树,随机森林的预测结果往往不具有可解释性。因此,它更适用于对预测结果的要求高,不要求可解释性场景。