• 为了保证你在浏览本网站时有着更好的体验,建议使用类似Chrome、Firefox之类的浏览器~~
    • 如果你喜欢本站的内容何不Ctrl+D收藏一下呢,与大家一起分享各种编程知识~
    • 本网站研究机器学习、计算机视觉、模式识别~当然不局限于此,生命在于折腾,何不年轻时多折腾一下

随机森林之特征选择

ml admin 1年前 (2018-03-13) 2683次浏览 0个评论 扫描二维码

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


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

(1)基尼系数

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

基尼系数

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

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

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

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

OOB

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

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

OOB 误差究竟怎么用?

第一步:

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

第二步:

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

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


Deeplearn, 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权 , 转载请注明随机森林之特征选择
喜欢 (2)
admin
关于作者:

您必须 登录 才能发表评论!