Scikit learn 随机森林学习变量重要性

Scikit learn 随机森林学习变量重要性,scikit-learn,random-forest,feature-selection,Scikit Learn,Random Forest,Feature Selection,由sklearn的RandomForestClassifier的属性feature\u importance\u给出的变量重要性值是否可以解释为百分比?据我所知,这是在分割点使用特定特征时,所有树上杂质指数减少的平均值。feature\u importance\u值的范围是多少?对于具有1000个特征的数据集,如果feature\u importance\u值范围为0~0.05,且大多数特征值为0,只有少数特征值略有增加,这是否表明数据有噪声 这是否表明数据有噪声 你的问题非常笼统,不看数据就不

sklearn
RandomForestClassifier
的属性
feature\u importance\u
给出的变量重要性值是否可以解释为百分比?据我所知,这是在分割点使用特定特征时,所有树上杂质指数减少的平均值。
feature\u importance\u
值的范围是多少?对于具有1000个特征的数据集,如果
feature\u importance\u
值范围为0~0.05,且大多数特征值为0,只有少数特征值略有增加,这是否表明数据有噪声

这是否表明数据有噪声

你的问题非常笼统,不看数据就不可能回答这个问题

但是,您可以通过标准化其值来查看
功能重要性值作为百分比的简单方法是:

importance_sum = sum(rf.feature_importance_)
feature_importance_as_percent =  [100*(x/sum) for x in rf.feature_importance_]
这是否表明数据有噪声

你的问题非常笼统,不看数据就不可能回答这个问题

但是,您可以通过标准化其值来查看
功能重要性值作为百分比的简单方法是:

importance_sum = sum(rf.feature_importance_)
feature_importance_as_percent =  [100*(x/sum) for x in rf.feature_importance_]
我知道,当在分割点使用特定特征时,它是所有树上杂质指数减少的平均值

这是正确的。让我们看看如何详细计算单个树的特征重要性。杂质减少是分割前节点的杂质减去分割后两个子节点的杂质之和。这是每个特征在树中的所有拆分上的平均值。然后,对重要性进行归一化:每个特征重要性除以重要性的总和

因此,在某种意义上,单个树的特征重要性是百分比。它们相加为一,并描述单个特征对树的总杂质减少的贡献

随机森林的特征重要性计算为所有树的平均重要性。它们仍然可以被视为单个特征的分数缩减。你可以(也应该)验证他们是否是一对一

特征值的范围是什么

理论上,由于重要性的标准化方式,范围为0到1。然而,在实践中,范围将大大降低。随机森林随机选取数据的特征和子集,所以很有可能在分割中使用所有特征。即使它们不是很重要,它们也只占总重要性的一小部分。因为重要度应该是一对一的,所以你拥有的功能越多,重要度就越低

特征重要性值范围为0~0.05,大多数特征值为0,只有少数特征值略有增加,这是否表明数据有噪声

不,这很可能意味着样本和/或树(估计数)很少。重要性为0很可能意味着该功能根本没有在林中使用。由于该分类器的随机性,所有特征应至少使用一点。因此,这表明执行的拆分不多

我假设您没有很多树,因为默认的
n_estimators=10
非常低。大多数文献建议使用100或1000棵树。你不能吃太多,这只会影响性能

最后,一句警告

不要过分依赖特性的重要性。如果一项功能的重要性高于另一项,则可能意味着它更重要,但您不能确定:

例如,假设您复制了一个要素,并将其作为新要素添加到数据中。原始功能和新功能应该同等重要。但是,每当执行分割时,只能选择其中一个,因此一半时间内将随机选择原始特征。这也使原始功能的重要性减半!如果另一个功能不在,新功能和原始功能的重要性都只有原来的一半

如果数据中的某些特征是相关的(实际上是统计相关的),那么它们的重要性将低于同等重要的不相关特征

我知道,当在分割点使用特定特征时,它是所有树上杂质指数减少的平均值

这是正确的。让我们看看如何详细计算单个树的特征重要性。杂质减少是分割前节点的杂质减去分割后两个子节点的杂质之和。这是每个特征在树中的所有拆分上的平均值。然后,对重要性进行归一化:每个特征重要性除以重要性的总和

因此,在某种意义上,单个树的特征重要性是百分比。它们相加为一,并描述单个特征对树的总杂质减少的贡献

随机森林的特征重要性计算为所有树的平均重要性。它们仍然可以被视为单个特征的分数缩减。你可以(也应该)验证他们是否是一对一

特征值的范围是什么

理论上,由于重要性的标准化方式,范围为0到1。然而,在实践中,范围将大大降低。随机森林随机选取数据的特征和子集,所以很有可能在分割中使用所有特征。即使它们不是很重要,它们也只占总重要性的一小部分。因为重要度应该是一对一的,所以你拥有的功能越多,重要度就越低

特征重要性值范围为0~0.05,大多数特征值为0,只有少数特征值略有增加,这是否表明数据有噪声

不,这很可能意味着你一年只有几个样品