随机森林由决策树组成。随机森林很容易被创建、使用和解释。
决策树在训练集中的表现较好,但是因其不具有灵活性而在其他外部数据中的表现略差。由许多决策树组成的随机森林更具有灵活性,从而较大地提高了准确预测的能力。
本小节将主要从随机森林的创建、使用和评估进行介绍,最后展示如何对创建随机森林进行参数选择。
Step 1:创建“bootstrapped”数据集。
假设原始数据集仅有4个样本,利用bootstrap方法创建数据集,即从原始数据集中有放回的随机抽样(抽样样本数与原始数据样本数相同),有可能抽到重复的样本,也有可能不能抽到某个样本。如下,在bootstrapped数据集中,含有2个相同的样本,不含原始数据中的第3个样本。
Step2: 基于bootstrapped数据集,创建决策树。
在创建决策树的每一步中,仅随机选择一部分变量进行创建节点(根节点和内部节点)。在本例中,仅使用2个随机变量进行创建决策树【在后续的学习中,我们将了解如何选择最适随机变量数量】。
Step3: 反复重复以上步骤,即不断重复创建新的bootstrapped数据集和创建新的决策树。
如果重复的次数为100次,那么将创建一片含有100棵决策树的随机森林。这里仅展示其中6个决策树。
随机森林的意义:因为bootstrapped数据集和创建决策树的每一步仅考虑部分随机变量,故随机森林由各种各样的决策树组成。决策树的多样性使得随机森林较单一决策树更有效。
假设基于前面的数据,我们已创建随机森林。
现在我们有一个新的患者,我们需要通过一些已知的变量来预测其是否患有心脏病。
将该患者的数据放进随机森林中(如,6棵树的随机森林),每一棵树都可以预测出一个结果。基于每一棵数的预测结果,如第一棵树预测为“yes”,第二棵树预测为“yes”......如果随机森林中,大多数决策树的预测结果为“yes”,5个决策树认为“yes”,仅1个决策树认为是“no”,那么基于随机森林的预测结果就为“yes”,即认为该患者患有心脏病。
重抽样数据和综合多个模型结果进行预测,这样的方法称为装袋算法(Bagging)。
袋外数据与袋外数据集:在第一棵决策树中,原始数据中的第三个样本未被纳入bootstrapped数据集,被称为袋外样本(out-of-bag,OBB)。这样的样本组成一个新的数据集,称为袋外数据集(out-of-bag dataset)。
总得来说,将会有1/3的原始数据未被纳入bootstrapped数据集。故如果原始数据集更大,未纳入bootstrapped数据集的样本将会更多。
因为袋外数据未被用来创建决策树,故我们可将袋外数据代入不含该样本的决策树(共4个不含该样本的决策树),判定其是否能将该样本进行正确分类。从而判定随机森林的分类效能。
同第一棵决策树的袋外样本一样,将其他决策树的袋外样本带入不含该袋外样本的决策树,从而判定该随机森林能够将其正确分类。
基于前面的学习,我们已知如何创建、使用和评估随机森林。
接下来,我们就可以更加详细的了解,将评估的随机森林性能反馈给创建随机森林:如何选择创建决策树时每一步考虑的随机变量个数。
参考视频:https://www.youtube.com/watch?v=J4Wdy0Wc_xQ&list=PLblh5JKOoLUICTaGLRoHQDuF_7q2GfuJF&index=42
编辑:吕琼
校审:罗鹏