R上的可变重要性随机森林

数据挖掘 机器学习 r 特征选择 随机森林 特征提取
2021-10-12 10:17:21

我目前正在使用随机森林模型进行分类,但是我不确定特征选择技术“varImp”如何在 R 上工作。我了解变量重要性的上下文,但是当我在 R 中实现它时,它似乎不会产生我期望的结果。

当移除最重要的变量(31 个特征)时,模型的准确性不会降低。我希望它能够为模型的分类能力做出最大贡献。

有人可以解释一下这个功能在做什么吗?

2个回答

函数对每个变量做了什么?

  1. 记录每棵树的袋外 (OOB) 准确度。
  2. “洗牌”或置换该变量的值。这意味着您获取数据中该变量的所有值,并将这些值随机分配回观察值,这是一种引入噪声并消除该变量提供的信号的方法。
  3. 现在它再次找到 OOB 精度,但这次该变量的值不正确,因为我们对其进行了置换。通过在模型期望信号的地方引入噪声,您应该会看到性能下降。
  4. 对于每个变量,比较 (1) 中的原始准确度与 (3) 中的准确度。如果与步骤(1)相比,步骤(3)中变量的模型性能下降很多,则认为它具有更大的重要性。

为什么删除最重要的变量不会对准确性产生负面影响?(我猜)

可能是因为该重要变量与您拥有的其他一些变量相关。您的模型可以通过使用一些其他变量来弥补缺失的重要变量中包含的信息。当您删除重要变量时,哪些其他变量会获得显着收益?

VarImp 的工作原理是您的变量如何帮助数据以最小的错误拆分并按其效率排序。

正如您所说,即使在删除重要变量之后,您仍然可以获得相同的准确性。可能它不会在很大程度上影响您的因变量,或者您没有执行所需的转换。

还有其他方法可以找到特征重要性,例如递归特征消除。这是插入符号中的描述 RFE