随机森林中oob以及oob的作用?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了随机森林中oob以及oob的作用?相关的知识,希望对你有一定的参考价值。

参考技术A 在随机森林bagging法中可以发现booststrap每次约有1/3的样本不会出现在bootstrap所采集的样本集合中,故没有参加决策树的建立,这些数据称为袋外数据oob,用于取代测试集误差估计方法,可用于模型的验证。
下面先介绍下oob的使用,其中(x,y)代表输入的样本和label,g表示的是构建的树。

上图中(xN,yN)没有用于g2、g3、gt,所以(xN,yN)可以作为g2、g3、gt的验证数据,然后用oob数据作为输入,输入到模型中,然后投票,少数服从多数。同理,对于(x1,y1)、(x2,y2)等也存在同样的计算,最终计算评判错误的样本占比,就是oob-error.

所以oob可以用来衡量模型的好坏。

同时,也可以引出随机森林输出特征重要性的原理,如果特征i对于模型是有利的,那么第i维特征置换成随机值,将会降低模型的性能,也就是会使oob-error变大。

随机森林算法OOB_SCORE最佳特征选择

Sklearn RandomForest算法(有监督学习),可以根据输入数据,选择最佳特征组合,减少特征冗余;

原理:由于随机决策树生成过程采用的Boostrap,所以在一棵树的生成过程并不会使用所有的样本,未使用的样本就叫(Out_of_bag)袋外样本,通过袋外样本,可以评估这个树的准确度,其他子树叶按这个原理评估,最后可以取平均值,即是随机森林算法的性能;

特征选择原理:因为袋外样本的存在,因此不需要进行十字交叉测试(节省时间),通过依次对每个特征赋予一个随机数,观察算法性能的变化,倘若变化大,则说明该特征重要,sklearn中会对每个特征赋予一个分数,分数越大,特征越重要,因此,可以根据特征重要性排序,然后选择最佳特征组合;

RandomForestClassifier(n_estimators=200,oob_score=True)

oob_score : bool (default=False) Whether to use out-of-bag samples to estimate the generalization accuracy.

oob_score:  bool(默认=False) 是否使用袋外样品进行估算 泛化精度。

以上是关于随机森林中oob以及oob的作用?的主要内容,如果未能解决你的问题,请参考以下文章

15、随机森林的OOB

使用 Python 的随机森林的高 OOB 错误

python 随机森林中的OOB

随机森林之oob的计算过程

随机森林的高OOB错误率

sklearn 随机森林:.oob_score_ 太低?