特征重要性

数据挖掘 机器学习 分类 特征选择 随机森林 预测重要性
2022-02-21 16:26:46

我有一个包含 10 个特征的数据集。

  1. 在拟合了 Scikit learn 的极其随机树 (ET) 分类器之后,我使用来自 eli5 的交叉验证的置换重要性计算了特征重要性。

  2. 我一次只使用一个特征拟合了 10 个不同的 ET,并使用相同的 CV 方案计算了平均交叉验证分数。

我注意到,虽然我从排列重要性中获得的特征的重要性顺序与特征的顺序相匹配,但当我使用一次仅使用一个特征拟合模型时获得的平均 CV 分数对它们进行排名时,有一个特征可以排列重要性类别在最底部,而单独使用模型拟合时的平均 CV 分数是第二个。

假设从1.开始,特征的顺序是特征2、特征4、特征5、特征1、特征9、特征8、特征7、特征10、特征3、特征6。当一次使用一个特征并计算平均 cv 分数时,我注意到特征 3 的平均 cv 分数是第二好的,尽管重要性特征表明它是一个弱特征。

如果有人能帮助我理解如何解释这一点以及哪种方法似乎更值得信赖,我将不胜感激。

谢谢你。

1个回答

让我们先看看置换重要性的算法是如何工作的。根据文档:

为了避免重新训练估计器,我们可以只从数据集的测试部分中删除一个特征,并在不使用这个特征的情况下计算分数。它不能按原样工作,因为估计器期望特征存在。因此,我们可以用随机噪声替换它,而不是删除一个特征——特征列仍然存在,但它不再包含有用的信息。如果噪声来自与原始特征值相同的分布,则此方法有效(否则估计器可能会失败)。获得这种噪声的最简单方法是对特征值进行混洗,即使用其他示例的特征值——这就是计算排列重要性的方式。

现在,您的问题的答案是,尽管功能 3 提供了重要信息(方案 2 中的 cv 得分第二好),但也可以使用组合的其余 9 个功能来捕获该信息(因此在方案 1 中它是无用的)。在使用多个特征时,如果模型从中获得其他特征无法提供的任何新见解,则该特征很重要。

您可以从ELI5 Permutation Importance的“算法”部分解释这一点