Saya tidak mendapatkan perbedaan antara rfobject$importance
dan importance(rfobject)
di kolom MeanDecreaseAccuracy.
Contoh:
> 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
>
Saya mendapatkan nilai MeanDecreaseAccuracy yang berbeda tetapi memiliki urutan yang sama untuk variabel penting (untuk fit$importance
maupun untuk importance(fit)
):
Petal. Lebar
Petal. Panjangnya
Sepal. Panjang
Sepal. Lebar
Tetapi dalam dataset lain saya terkadang mendapatkan pesanan berbeda. Adakah yang bisa menjelaskan apa yang terjadi di sini? Apakah ini bug?
Edit (sebagai tanggapan terhadap Martin O'Leary )
Oke terima kasih! Saya memperhatikan sesuatu yang lain.
Melihat rfcv()
fungsi saya perhatikan garis:
impvar <- (1:p)[order(all.rf$importance[, 1], decreasing = TRUE)]
dengan baris ini kita memilih kolom pertama all.rf$importance
yang memberi kita urutan langkah-langkah khusus kelas (untuk faktor pertama ) yang dihitung sebagai rata-rata penurunan hanya dalam akurasi. Urutan ini tidak selalu sama dengan penurunan rata-rata dalam akurasi semua kelas ( MeanDecreaseAccuracy
). Bukankah lebih baik memilih baik MeanDecreaseAccuracy
atau MeanDecreaseGini
kolom, atau lebih baik menggunakan importance()
-fungsi untuk nilai skala? Jadi kita akan memiliki jumlah prediktor yang dikurangi secara berurutan yang diurutkan berdasarkan tingkat kepentingan variabel (di semua kelas) dan tidak hanya diurutkan berdasarkan tingkat kepentingan untuk kelas pertama.