RF

引自:https://blog.csdn.net/God_68/article/details/81747297?depth_1-utm_source=distribute.pc_relevant.none-task&utm_source=distribute.pc_relevant.none-task

二、Random Forest算法 

Random Forest的基本单元是决策树,属于集成学习 (Ensemble Learning)方法(目的是通过结合多个基学习器的预测结果来改善单个学习器的泛化能力和鲁棒性)。随机森林是Bagging的扩展变体,它在以决策树为基学习器构建Bagging集成的基础上,进一步在决策树的训练过程中引入随机特征选择,因此,随机森林包括四部分:(1)随机有放回的选取样本;(2)随机选择样本;(3)构建决策树;(4)随机森林投票(简单平均)。

1、随机森林的生成 

通俗易懂的解释:随机森林中存在许多决策树,每棵决策树就是一个分类器。假如森林中有一棵新的树长成,森林要开大会讨论该植物属于哪一类,每棵树都要根据待分类树的特征发言并给出结论进行投票(每棵植物的看法都是独立的,互不影响),判断该树是松树还是杉树,根据每棵树的投票情况,获得票数最多的类别就是森林的分类结果。由于森林中每棵树都是独立的,那么森林大会中所有投票的结果必定会包括所有的情况。部分优秀的树(强分类器)给出的投票结果会更加准确,大部分树的投票结果可能会产生更大的偏差,但是将若干个投票树(弱分类器)组合在一起就形成一个强分类器,即集中所有的分类器投票的结果,将投票次数最多的类别指定为最终的输出,这就是简单的随机森林Bagging的思想

那么森林中的每棵树是如何生成的?下面介绍每棵树的生成规则。

(1)假如总共有 M 个样本,对于每棵树而言,随机且有放回地从样本集中抽取 N (M<N)个训练样本,作为该树的训练集

注:值得注意的是,在选取训练集时,每棵树的训练集都是不同的,而且每个训练集之间都有重复的训练样本。

为什么随机选取训练集?

如果不随机抽样,那么每棵树的训练集都是一样的,则最终训练出来的树分类结果也是完全一样的,这样就违背了Bagging思想;

为什么有放回地抽样?

随机森林最后的分类结果取决于若干个弱分类器的投票结果,投票次数最多的类别,就是该待分类树的所属类别,在这个过程中是求同,而有放回地抽样就会产生相同的训练样本。如果不是有放回地抽样,那么每棵树的训练样本都是相同,没有交集,也就是说,每棵树训练出来的结果会存在很大的偏差。因此使用完全不一样的训练集来训练每棵树这样的做法对最终的分类结果没有任何的帮助。总之,对于每棵树的训练集而言,我们需要有放回地抽样

(2)假设每个训练样本的特征维度是 W,随机地从 W 个特征集中选取 x (x<W)个特征子集,每次树进行分裂时,从这 x 个特征中选择最优特征作为分裂点;

(3)每棵树尽最大程度生长,不剪枝。

影响随机森林分类结果的因素:

森林中任意两棵树的相关性:相关性越大,错误率越大
森林中每棵树的分类能力:每棵树的分类器能力越强,整个森林的错误率越低
减小特征数 x ,树的相关性和分类能力都会降低;增大 x ,两者也会随之增大。所以,随机森林的关键问题在于特征子集 x (x 的个数或 x 的范围选择)的最优选择,这也是随机森林唯一的一个可调参数。

 最后总结一下随机森林的优缺点:

1、随机森林的优点:

随机森林仅需要指定两个参数,学习和使用更简单,预测精度高、训练速度快;
随机森林引入两个随机性,使得随机森林具有良好的抗噪声能力,不容易出现过拟合;
随机森林可以在分类中对各个变量的重要性进行估计,可以在创建过程中给出对泛化误差的无偏估计;
随机森林可以处理很高维的数据,对数据集的适应能力强;
随机森林的预测效果和性能稳定性要优于许多单预测器和集成预测方法,分类精度可与Boosting方法(如AdaBoost)相媲美,并且运行速度更快。
2、随机森林的缺点: 

随机森林在训练数据较少时会可能导致过拟合。 

posted @ 2020-03-27 18:51  19l92y11p26  阅读(191)  评论(0编辑  收藏  举报
/*鼠标跟随效果*/ /* 点击爆炸效果*/
/*鼠标跟随效果*/
Live2D