Cara menginterpretasikan Pengurangan Mean dalam Akurasi dan Pengurangan Mean GINI dalam model Hutan Acak

34

Saya mengalami beberapa kesulitan memahami bagaimana menafsirkan variabel pentingnya output dari paket Random Forest. Penurunan akurasi dalam akurasi biasanya digambarkan sebagai "penurunan akurasi model dari permutasi nilai di setiap fitur".

Apakah ini pernyataan tentang fitur secara keseluruhan atau tentang nilai-nilai spesifik di dalam fitur? Dalam kedua kasus, apakah Mean Decrease in Accuracy jumlah atau proporsi pengamatan yang salah diklasifikasikan dengan menghapus fitur (atau nilai-nilai dari fitur) dipertanyakan dari model?

Katakanlah kita memiliki model berikut:

require(randomForest)
data(iris)
set.seed(1)
dat <- iris
dat$Species <- factor(ifelse(dat$Species=='virginica','virginica','other'))
model.rf <- randomForest(Species~., dat, ntree=25,
importance=TRUE, nodesize=5)
model.rf
varImpPlot(model.rf)

Call:
 randomForest(formula = Species ~ ., data = dat, ntree = 25,
 proximity = TRUE, importance = TRUE, nodesize = 5)

Type of random forest: classification
Number of trees: 25
No. of variables tried at each split: 2

        OOB estimate of  error rate: 3.33%
Confusion matrix:
          other virginica class.error
other        97         3        0.03
virginica     2        48        0.04

masukkan deskripsi gambar di sini

Dalam model ini, tingkat OOB agak rendah (sekitar 5%). Namun, Mean Decrease in Accuracy untuk prediktor (Petal.Length) dengan nilai tertinggi dalam ukuran ini hanya sekitar 8.

Apakah ini berarti bahwa menghilangkan Petal. Panjang dari model hanya akan menghasilkan kesalahan klasifikasi tambahan sekitar 8 atau lebih pengamatan rata-rata?

Bagaimana Mean Mengurangi Akurasi untuk Petal. Panjangnya bisa sangat rendah, mengingat itu yang tertinggi dalam ukuran ini, dan dengan demikian variabel lain bahkan memiliki nilai yang lebih rendah pada ukuran ini?

FlacoT
sumber
coba dat <- iris [, c (2: 3,5)] dan harus mendapatkan nilai VI yang lebih tinggi
Soren Havelund Welling

Jawaban:

26

" Apakah ini pernyataan tentang fitur secara keseluruhan atau tentang nilai-nilai spesifik di dalam fitur? "

  • Variabel kepentingan "Global" adalah rata-rata penurunan akurasi atas semua prediksi cross-out-of-bag cross, ketika variabel yang diberikan diizinkan setelah pelatihan, tetapi sebelum prediksi. "Global" tersirat. Variabel kepentingan lokal adalah rata-rata penurunan akurasi oleh masing-masing individu prediksi cross-out-of-bag. Kepentingan variabel global adalah yang paling populer, karena merupakan angka tunggal per variabel, lebih mudah dipahami, dan lebih kuat karena dirata-rata atas semua prediksi.

" Dalam kedua kasus, apakah Mean Decrease in Accuracy jumlah atau proporsi pengamatan yang salah diklasifikasikan dengan menghapus fitur (atau nilai-nilai dari fitur) yang dipertanyakan dari model? "

  1. melatih hutan
  2. ukur akurasi CV out-of-bag → OOB_acc_base
  3. variabel permutasi i
  4. ukur akurasi CV out-of-bag → OOB_acc_perm_i
  5. VI_i = - (OOB_acc_perm_i - OOB_acc_base)

- " Apakah ini berarti menghapus Petal. Panjang dari model hanya akan menghasilkan kesalahan klasifikasi tambahan sekitar 8 atau lebih pengamatan rata-rata? "

  • Ya. Baik Petal.length dan Petal.width sendiri memiliki pemisahan linear yang hampir sempurna. Dengan demikian variabel berbagi informasi yang berlebihan dan hanya permutasi satu tidak menghalangi model.

" Bagaimana Mean Mengurangi Ketelitian untuk Petal. Panjangnya sangat rendah, mengingat itu yang tertinggi dalam ukuran ini, dan dengan demikian variabel lain bahkan memiliki nilai yang lebih rendah pada ukuran ini? "

  • Ketika model yang kuat / teratur diatur pada variabel yang berlebihan, itu cukup tahan terhadap permutasi dalam variabel tunggal.

Terutama gunakan variabel penting terutama untuk memberi peringkat kegunaan variabel Anda. Penafsiran yang jelas tentang nilai absolut dari kepentingan variabel sulit dilakukan dengan baik.

GINI: Kepentingan GINI mengukur perolehan rata-rata kemurnian dengan pemisahan dari variabel yang diberikan. Jika variabel berguna, ia cenderung untuk membagi node berlabel campuran menjadi node kelas tunggal murni. Pemisahan dengan variabel yang diijinkan cenderung tidak meningkatkan atau mengurangi kemurnian simpul. Menghubungkan variabel yang bermanfaat, cenderung memberikan penurunan yang relatif besar dalam perolehan gini rata-rata. Pentingnya GINI terkait erat dengan fungsi keputusan lokal, yang digunakan hutan acak untuk memilih pemisahan terbaik yang tersedia. Karena itu, tidak perlu banyak waktu ekstra untuk menghitung. Di sisi lain, gini-gain rata dalam perpecahan lokal, belum tentu apa yang paling berguna untuk diukur, bertentangan dengan perubahan kinerja model keseluruhan. Pentingnya Gini secara keseluruhan lebih rendah daripada kepentingan variabel (berdasarkan permutasi) karena relatif lebih bias, lebih tidak stabil dan cenderung menjawab pertanyaan yang lebih tidak langsung.

Soren Havelund Welling
sumber
Untuk interpretasi variabel penting di luar peringkat sederhana, check out: "bivariat pemilihan variabel untuk masalah klasifikasi" -Vivian W. Ng dan Leo Breiman digitalassets.lib.berkeley.edu/sdtr/ucb/text/692.pdf
Soren Havelund Welling
Terima kasih banyak atas tanggapan Anda! Saya telah melihat beberapa tempat menggambarkan penurunan rata-rata dalam akurasi sebagai peningkatan dalam tingkat kesalahan OOB (jadi persentase). Formula yang Anda poskan juga tampaknya menyarankan tingkat kesalahan: (OOB_acc_perm_i - OOB_acc_base). Tetapi Anda yakin Mean Decrease in Accuracy mengacu pada jumlah pengamatan yang salah klasifikasi?
FlacoT
1
Ingat minus di depan, karena kepentingan variabel adalah penurunan. Saya tidak terlalu spesifik dengan unit, ini bisa dinyatakan dalam% atau rasio / proporsi murni, tidak masalah. Tapi ya sebagai akurasi = 1-error_rate, VI_i = error_rate_perm_i - error_rate_base. Untuk regresi, unit variabel permutasi penting adalah penurunan% varians yang dijelaskan dan unit gini pentingnya adalah penurunan mean_square_error-gain. "Tapi kamu yakin Mean Decrease in Accuracy mengacu pada jumlah observasi yang salah klasifikasi? " -Tidak, akurasi adalah pecahan, bukan hitungan.
Soren Havelund Welling
10

Berikut ini deskripsi penurunan rata-rata akurasi (MDA) dari manual bantuan randomForest:

Ukuran pertama dihitung dari permutasi data OOB: Untuk setiap pohon, kesalahan prediksi pada bagian out-of-bag data dicatat (tingkat kesalahan untuk klasifikasi, MSE untuk regresi). Kemudian hal yang sama dilakukan setelah mengubah setiap variabel prediktor. Perbedaan antara keduanya kemudian dirata-rata untuk semua pohon, dan dinormalisasi dengan standar deviasi perbedaan. Jika standar deviasi dari perbedaan adalah sama dengan 0 untuk suatu variabel, pembagian tidak dilakukan (tetapi rata-rata hampir selalu sama dengan 0 dalam kasus itu).

Menurut deskripsi, "akurasi" dalam MDA sebenarnya mengacu pada akurasi model pohon tunggal , terlepas dari kenyataan bahwa kita lebih mementingkan tingkat kesalahan hutan . Begitu,

"Apakah ini berarti menghapus Petal. Panjang dari model hanya akan menghasilkan kesalahan klasifikasi tambahan sekitar 8 atau lebih pengamatan rata-rata?"

  • Mean(Decreases in Accuracy of Trees)StandardDeviation(Decreases in Accuracy of Trees)
  • Mean(Decreases in Accuracy of Trees)

H0:Nodes constructed by predictor i is useless in any single trees
H1:Nodes constructed by predictor i is useful

Sebagai komentar, prosedur MDA yang dijelaskan oleh Soren berbeda dari implementasi paket randomForest. Lebih dekat dengan apa yang kita inginkan dari MDA: penurunan akurasi dari keseluruhan model hutan. Namun, model ini mungkin akan dipasang secara berbeda tanpa Petal. Panjang dan lebih mengandalkan prediktor lain. Jadi MDA Soren akan terlalu pesimistis.

Jianyu
sumber
Dua pertanyaan lanjutan: 1. Adakah ide jika paket lain menggunakan MDA yang lebih intuitif yang dijelaskan oleh @Soren? 2. Jika interpretasi MDA dalam RandomForest adalah sebagai statistik uji, apakah ada semacam aturan praktis tentang apa statistik uji yang cukup besar untuk menolak H0? Apakah MDA mengikuti distribusi yang diketahui?
FlacoT
1. Maaf, saya tidak mencoba paket lain. 2. Ini hanya seperti statistik uji. Baik distribusinya tidak dapat diakses (sejauh yang saya tahu sedikit orang melihat ini) maupun tes itu sendiri bermakna - Saya tidak berpikir tes menyimpulkan apa pun tentang HUTAN, yang merupakan minat kami yang sebenarnya.
Jianyu
4

Baru-baru ini (posting blog) [ https://explained.ai/rf-importance/index.html] dari tim di University of San Francisco menunjukkan bahwa strategi pentingnya standar di R (randomForest) dan Python (scikit) tidak dapat diandalkan dalam banyak skenario data. Khususnya, penurunan rata-rata dalam metrik kepentingan pengotor bias ketika variabel prediktor potensial bervariasi dalam skala pengukuran atau jumlah kategorinya.

Makalah dan posting blog menunjukkan bagaimana variabel kardinalitas tinggi dan berkesinambungan lebih disukai dalam penurunan rerata tingkat ketidakmurnian, bahkan jika mereka sama-sama tidak informatif dibandingkan dengan variabel dengan kategori kurang. Para penulis menyarankan menggunakan kepentingan permutasi daripada default dalam kasus ini. Jika variabel prediktor dalam model Anda sangat berkorelasi, pentingnya permutasi bersyarat disarankan.

Pengotor bias karena pada setiap kali breakpoint dipilih dalam suatu variabel, setiap level variabel diuji untuk menemukan break point terbaik. Variabel kardinalitas kontinu atau tinggi akan memiliki lebih banyak titik pemisahan, yang menghasilkan masalah "pengujian ganda". Artinya, ada probabilitas yang lebih tinggi bahwa secara kebetulan variabel terjadi untuk memprediksi hasil dengan baik, karena variabel, di mana lebih banyak pemisahan dicoba, akan muncul lebih sering di pohon.

pengguna4959
sumber