MeanDecreaseAccuracy列のrfobject$importance
との違いがimportance(rfobject)
わかりません。
例:
> 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$importance
ですimportance(fit)
。
花びらの幅
花びらの長さ
Sepal.Length
Sepal.Width
しかし、他のデータセットでは、ときどき異なる注文を取得します。誰かがここで何が起こっているのか説明できますか?これはおそらくバグですか?
編集(Martin O'Learyへの対応)
ありがとうございます!他のことに気づきました。
rfcv()
関数を見て、次の行に気づきました:
impvar <- (1:p)[order(all.rf$importance[, 1], decreasing = TRUE)]
この行では、最初の列を選択します。その最初の列は、精度の平均減少のみとして計算されall.rf$importance
たクラス固有の(最初の因数)メジャーの順序を示します。これは、すべてのクラスでの平均精度の低下と常に同じ順序であるとは限りません(MeanDecreaseAccuracy
)。MeanDecreaseAccuracy
またはMeanDecreaseGini
列のいずれかを選択するかimportance()
、スケーリングされた値に-functionを使用する方が良いのではないでしょうか。したがって、変数の重要度(すべてのクラス)でランク付けされ、最初のクラスの変数の重要度だけでランク付けされるのではなく、連続して減少する数の予測子があります。