随机森林, Random Forest


随机森林的优点 (随机森林(Random forest,RF)的生成方法以及优缺点_zhongjunlang的专栏)

  • 在当前所有算法中,具有较高的准确率, 即使存在缺失值问题
  • 能够有效地运行在大数据集上
  • 能够处理具有高维特征的输入样本,而且不需要降维
  • 对于不平衡数据集来说,随机森林可以平衡误差。当存在分类不平衡的情况时,随机森林能提供平衡数据集误差的有效方法。
  • 能够评估各个特征在分类问题上的重要性
  • 在训练过程中,能够检测到feature之间的影响(?)。
  • 在生成过程中,能够获取到内部生成误差的一种无偏估计($errOOB$)
  • 随机森林抗过拟合能力比较强(虽然理论上说随机森林不会产生过拟合现象,但是在现实中噪声是不能忽略的,增加树虽然能够减小过拟合,但没有办法完全消除过拟合,无论怎么增加树都不行,再说树的数目也不可能无限增加的。)
  • 随机森林能够解决分类与回归两种类型的问题,并在这两方面都有相当好的估计表现。(虽然RF能做回归问题,但通常都用RF来解决分类问题)。
  • 训练速度快,容易做成并行化方法(训练时,树与树之间是相互独立的)。

 

随机森林中的随机是什么意思?(随机森林(Random forest,RF)的生成方法以及优缺点_zhongjunlang的专栏)
随机性主要体现在两个方面:

  1. 随机采样:随机森林在计算每棵树时,从全部训练样本(样本数为n)中选取一个可能有重复的、大小同样为n的数据集进行训练(即booststrap采样)。
  2. 特征选取的随机性:在每个节点随机选取所有特征的一个子集,用来计算最佳分割方式。

 

特征重要性评估

用随机森林进行特征重要性评估的思想其实很简单,说白了就是看看每个特征在随机森林中的每颗树上做了多大的贡献,然后取个平均值。

通常可以用基尼指数(Gini index)或者袋外数据(OOB)错误率作为评价指标来衡量。

1. 袋外数据错误率 (利用随机森林进行特征选择_布纸所云-CSDN博客)
计算某个特征X的重要性时,具体步骤如下:

1.1 对每一颗决策树,选择相应的袋外数据(out of bag,OOB)​计算袋外数据误差,记为$errOOB_1$。

所谓袋外数据是指,每次建立决策树时,通过重复抽样得到一个数据用于训练​决策树,这时还有大约1/3的数据*没有被利用,没有参与决策树的建立。这部分数据可以用于对决策树的性能进行评估,计算模型的预测错误率,称为袋外数据误差。

* 一个样本是OOB样本的概率约为$\frac{1}{e}$

RF中每次抽样N个样本训练每一棵树gt,原始的数据集中将有近1/e的样本未参与其训练;因此可以使用这部分数据对此棵树gt进行validation。

​经过证明(?)$errOOB$是测试集误差(泛化误差)的无偏估计,所以在随机森林算法中不需要再进行交叉验证或者单独的验证集.

[Machine Learning & Algorithm] 随机森林(Random Forest) - Poll的笔记 - 博客园 (cnblogs.com)

我们知道,在构建每棵树时,我们对训练集使用了不同的bootstrap sample(随机且有放回地抽取)。所以对于每棵树而言(假设对于第k棵树),大约有1/3的训练实例没有参与第k棵树的生成,它们称为第k棵树的oob样本

  而这样的采样特点就允许我们进行oob估计,它的计算方式如下(note:以样本为单位):

  1)对每个样本,计算将它视作oob样本的树对它的分类情况(约1/3的树);

  2)然后以简单多数投票作为该样本的分类结果;

  3)最后用误分个数占样本总数的比率作为随机森林的oob误分率。

 

​1.2 随机对袋外数据OOB所有样本的特征X加入噪声干扰(可以随机改变样本在特征X处的值),再次计算袋外数据误差,记为$errOOB_2$。

另一种完全不同的说法 (RandomForest的out of bag estimate 及Feature selection 具体作法)

4、 RF在实际计算特征重要性的处理tricks

(1)对于计算某个特征的重要性时,RF不采用直接修改所有样本在该特征的值或在该特征上引入噪声的方法;而是采用permutation(洗牌)的方法,例如总共有5个样本,某个特征Xi在所有样本上的取值情况为集合A=(0,1,2,3,4),则permutation的作法是将集合A进行重洗,然后再随机重新分配给每一个样本再特征Xi上的值。(就好像是52个人每人手里拿了一张牌,permutation就好比是个裁判,把52张牌收集起来重新洗乱后再分给52个人)

1.3 ​假设森林中有$N$棵树,则特征X的重要性=$\sum_{i=1}^N (errOOB_{2, i}−errOOB_{1, i}) / N$。这个数值之所以能够说明特征的重要性是因为,如果加入随机噪声后,袋外数据准确率大幅度下降(即$errOOB_2$大幅度上升),说明这个特征对于样本的预测结果有很大影响,进而说明重要程度比较高。

​2. 特征选择 (随机森林进行特征选择_zrh_CSDN的博客)

在特征重要性的基础上,特征选择的步骤如下:

2.1 计算每个特征的重要性,并按降序排序

2.2 确定要剔除的比例,依据特征重要性剔除相应比例的特征,得到一个新的特征集

2.3 用新的特征集重复上述过程,直到剩下m个特征(m为提前设定的值)。

2.4 根据上述过程中得到的各个特征集和特征集对应的袋外误差率,选择袋外误差率最低的特征集。


 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM