RF和Feature Importance函数

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了RF和Feature Importance函数相关的知识,希望对你有一定的参考价值。

参考技术A

随机森林中每颗树的生成:

Bagging集成学习,投票或加权投票来决定分类。




为什么要随机抽样训练集?(add @2016.05.28)

为什么要有放回地抽样?(add @2016.05.28)

这两个随机有什么好处?

随机森林分类效果与什么有关?




构建随机森林的关键问题就是如何选择最优的m,要解决这个问题主要依据计算袋外错误率oob error(out-of-bag error)。

我们知道,在构建每棵树时,我们对训练集使用了不同的bootstrap sample(随机且有放回地抽取)。所以对于每棵树而言(假设对于第k棵树),大约有1/3的训练实例没有参与第k棵树的生成,它们称为第k棵树的oob样本。
而这样的采样特点就允许我们进行oob估计,它的计算方式如下:




在特征选择的许多方法中,我们可以使用随机森林模型中的特征重要属性来筛选特征,并得到其与分类的相关性。
由于随机森林存在的固有随机性,该模型可能每次给予特征不同的重要性权重。但是通过多次训练该模型,即每次通过选取一定量的特征与上次特征中的交集进行保留,以此循环一定次数,从而我们最后可以得到一定量对分类任务的影响有重要贡献的特征。

具体来说,在随机森林中某个特征X的重要性的 计算方法 如下:

1:对于随机森林中的每一颗决策树,使用相应的 OOB (袋外数据)数据来计算它的 袋外数据误差 ,记为 errOOB1 .

2: 随机地对袋外数据OOB所有样本的特征X加入噪声干扰(就可以随机的改变样本在特征X处的值),再次计算它的袋外数据误差,记为 errOOB2 .

3:假设随机森林中有Ntree棵树,那么对于 特征X的重要性=∑(errOOB2-errOOB1)/Ntree ,之所以可以用这个表达式来作为相应特征的重要性的度量值是因为:若给某个特征随机加入噪声之后,袋外的准确率大幅度降低,则说明这个特征对于样本的分类结果影响很大,也就是说它的重要程度比较高。

以上是关于RF和Feature Importance函数的主要内容,如果未能解决你的问题,请参考以下文章

R语言使用DALEX包的variable_importance函数对h2o包生成的多个算法模型进行特征重要度分析并可视化对比差异(feature importance)

特征重要性--feature_importance

随机森林 sklearn 变量重要性

使用 BaggingClassifier 时打印决策树和 feature_importance

python xgb_feature_importance

SciKit Learn 中决策树中的 Feature_importance 向量以及特征名称