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
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?
Jawaban:
" 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) yang dipertanyakan dari model? "
- " Apakah ini berarti menghapus Petal. Panjang dari model hanya akan menghasilkan kesalahan klasifikasi tambahan sekitar 8 atau lebih pengamatan rata-rata? "
" 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? "
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.
sumber
Berikut ini deskripsi penurunan rata-rata akurasi (MDA) dari manual bantuan randomForest:
Menurut deskripsi, "akurasi" dalam MDA sebenarnya mengacu pada akurasi model pohon tunggal , terlepas dari kenyataan bahwa kita lebih mementingkan tingkat kesalahan hutan . Begitu,
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.
sumber
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.
sumber