随机森林中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的作用?的主要内容,如果未能解决你的问题,请参考以下文章