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