随机森林之特征选择

16,167次阅读
没有评论

共计 935 个字符,预计需要花费 3 分钟才能阅读完成。

随机森林之特征选择

随机森林的介绍在这篇文章中就不多介绍了,核心思想就是双随机过程:随机样本采样和随机特征采样


特征选择下面介绍两种方式

(1)基尼系数

(2)oob(out of bag) Error袋外误差

基尼系数

在决策树中cart树就是使用基尼系数来进行节点划分,在每一个节点划分的时候,计算每一个特征的基尼系数,选择基尼系数较小的特征,基尼系数越小,反应得到的结果集数据越纯,也就是划分的效果比较好,基本上都被正确的分类出来。

介绍了决策树节点划分的基本原理之后,我们是如何来使用基尼系数来计算特征的重要性?

假设我们给出的节点M,当前节点M的基尼系数是可以计算出来的,然后我们选择一个特征J进行划分,划分后的两个子集也有自己的基尼系数,计算划分前和划分后的基尼系数差值作为当前特征的重要性,如果差值越大说明当前的特征重要性越高。就拿特征J来说,如果我们划分后的结果很纯,那么计算出来的基尼系数很小,那么理所当然前后的差值较大,就达到了目的。

计算每一个特征在每一棵树的重要性,然后取加权平均得到最终的特征重要性评估

OOB

首先要了解什么是袋外误差?

袋外的概念就是我们一次对样本进行采样,假设总共有M个样本,一次采样只采集A个样本,那么就有M-A个样本没有被采集到,这些样本就是用来作为测试样本后期衡量决策树的好坏,当然也拿来衡量特征的好坏。

OOB误差究竟怎么用?

第一步:

我们已经把随机森林需要的K颗树全部算出来了,每一棵树都会对对应的袋外数据计算相应的结果,计算的结果与实际的结果之间对比可以得到算法的计算误差,此处我们记为ERROR1

第二步:

我们对每一个特征随机添加一定的噪声(也有另外一种方法,就是将当前特征的值随机打散),对加入噪声的数据再次计算对应的误差得到ERROR2,然后计算ERROR1与ERROR2之间的差值,差值越大,说明当前的特征越重要。为什么重要?你可以这么想,当前我们的特征未加入噪声之前计算的误差比较小,得到的结果比较好,但是你加入了脏数据也就变为不好的数据,那么计算出来的结果就会比较差。相反,本来特征计算的结果效果不好,你加了一点脏数据前后差异理论上也不会差异太大,所以得到的误差差异也就不大。到此就说明了特征的重要性。

结合以上两步就可以通过OOB来计算出特征的重要性了

正文完
请博主喝杯咖啡吧!
post-qrcode
 1
admin
版权声明:本站原创文章,由 admin 2018-03-13发表,共计935字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
评论(没有评论)
验证码