randomForest和变量重要性错误?


10

我不明白的之间的差异rfobject$importance,并importance(rfobject)在MeanDecreaseAccuracy列。

例:

> data("iris")
> fit <- randomForest(Species~., data=iris, importance=TRUE)
> fit$importance
                  setosa  versicolor   virginica MeanDecreaseAccuracy MeanDecreaseGini
Sepal.Length 0.027078501 0.019418330 0.040497602           0.02898837         9.173648
Sepal.Width  0.008553449 0.001962036 0.006951771           0.00575489         2.472105
Petal.Length 0.313303381 0.291818815 0.280981959           0.29216790        41.284869
Petal.Width  0.349686983 0.318527008 0.270975757           0.31054451        46.323415
> importance(fit)
               setosa versicolor virginica MeanDecreaseAccuracy MeanDecreaseGini
Sepal.Length 1.277324   1.632586  1.758101            1.2233029         9.173648
Sepal.Width  1.007943   0.252736  1.014141            0.6293145         2.472105
Petal.Length 3.685513   4.434083  4.133621            2.5139980        41.284869
Petal.Width  3.896375   4.421567  4.385642            2.5371353        46.323415
> 

我得到了不同的MeanDecreaseAccuracy值,但重要性变量(fit$importanceimportance(fit))的顺序相同:

  1. 花瓣宽度

  2. 花瓣长度

  3. 萼片长度

  4. 分隔宽度

但是在其他数据集中,我有时会得到不同的顺序。有人可以解释这里发生了什么吗?这可能是错误吗?


编辑(响应Martin O'Leary

好的谢谢!我注意到了别的东西。

看一下rfcv()我注意到的功能:

impvar <- (1:p)[order(all.rf$importance[, 1], decreasing = TRUE)]

在此行中,我们选择第一列,all.rf$importance该列为我们提供了特定于类的(针对第一个因子)度量的顺序,该度量仅按平均准确性降低而计算。这并不总是与所有类别(MeanDecreaseAccuracy)上平均准确度降低的顺序相同。选择MeanDecreaseAccuracyor或MeanDecreaseGinicolumn更好,还是importance()对比例值使用-function 更好?因此,我们将具有按变量减少的重要性(在所有类别中)而不是仅针对第一类的可变重要性而排名的预测变量数量。

Answers:


13

不,这不是错误。中给出的值fit$importance是未标度的,而由给出的值importance(fit)则以标准偏差(由给出fit$importanceSD)表示。这通常是更有意义的措施。如果需要“原始”值,可以使用importance(fit, scale=FALSE)

通常,当提供了提取器功能时,依靠fit对象的内部细节是一个非常糟糕的主意。无法保证其中的内容fit$importance-它们可能会因版本而异,恕不另行通知。提供提取器功能时,应始终使用它。


编辑:是的,该行rfcv()确实看起来像一个错误,或者至少是意外的行为。实际上,这是一个很好的例子,说明了为什么您不应该依赖诸如之类的内容fit$importance。如果拟合的回归森林,第一列fit$importance%IncMSE,折合importance(fit, type=1)。但是,这不适用于分类情况,在分类情况下,每个因子级别都有额外的列。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.