随机森林的特征重要性排序

OOB计算

用未被选择到的学习的数据,做验证集计算。不必另外做validation了
随机森林的特征重要性排序_第1张图片

Feature Selection

如果没有做好这部分,也是有缺点的:
随机森林的特征重要性排序_第2张图片
其中最致命的就是,可能得到的是错误的答案,一不小心找到的关系就是关联,而不是原因。
所以RF中加入了在哪里切一刀。

pemunitation

随机打乱这个特征的数据,看最后的结果和之前是否一致,这样保证了数据分布的一致。
如果一致,说明特征影响并不大。
直接删除呢?并没办法很好的决定出是否重要,因为该特征可能对组合有效?改变太多对结果的影响并不好说。

特征重要性排序

在这个特征里面加入一些垃圾,如果和不放的准确率类似,那么就可以说明是重要的。
加什么垃圾呢?垃圾还能选吗?
一个是把原数据的分布改掉,一个是杂絮的影响。
有放回抽样bootstrap,这里选择类似的思想。

pemunitation test:看下原来的表现和现在被污染之后的表现的差距

i m p o r t a n c e ( i ) = p e r f o r m a n c e ( D ) − p e r f o r m a n c e ( D p ) importance(i) = performance(D) - performance(D^p) importance(i)=performance(D)performance(Dp)
这样的操作需要训练P次,实际的算法采用了近似的方法,采用OOB的方法计算特征重要度排序。
i m p o r t a n c e ( i ) = E o o b ( D ) − E o o b ( D p ) importance(i) = E_{oob}(D) - E_{oob}(D^p) importance(i)=Eoob(D)Eoob(Dp) 如果是对原数据的分布进行改变,依旧没有什么影响。
但是可进一步转化为:
i m p o r t a n c e ( i ) = E o o b ( D ) − E o o b p ( D ) importance(i) = E_{oob}(D) - E_{oob}^p(D) importance(i)=Eoob(D)Eoobp(D),直接在验证上动手脚,训练只训练一次,但是计算OOB的时候对相应的特征,计算相应的OOB分数。

课后:

随机森林的特征重要性排序_第3张图片

你可能感兴趣的:(机器学习)