Rastgele Orman modellerinde Doğrulukta Ortalama Düşüş ve GINI'de Ortalama Düşüş Nasıl Yorumlanır?


34

Rastgele Orman paketinden değişken önem taşıyan çıktıları nasıl yorumlayacağımı anlamakta güçlük çekiyorum. Doğruluktaki ortalama düşüş genellikle "her bir özellikteki değerlere izin verilmesinden model doğruluğunda azalma" olarak tanımlanır.

Bu, özellik hakkında bir bütün olarak mı yoksa özellik içindeki belirli değerler hakkında mı? Her iki durumda da, Doğruluktaki Ortalama Düşüş söz konusu özelliği (veya özellikten değerleri) modelden çıkartarak yanlış sınıflandırılan gözlemlerin sayısı veya oranı mı?

Diyelim ki şu modelimiz var:

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

görüntü tanımını buraya girin

Bu modelde, OOB oranı oldukça düşüktür (yaklaşık% 5). Yine de, bu ölçüdeki değeri en yüksek olan yordayıcının (Petal.Length) Doğruluktaki Ortalama Düşüşü sadece 8 civarındadır.

Bu, Petal.Length öğesinin modelden çıkarılmasının, ortalama olarak 8 ya da öylesine gözlemlemenin ilave bir yanlış sınıflandırmasına neden olacağı anlamına mı geliyor?

Petal.Length için Doğruluktaki Ortalama Düşüş bu ölçekteki en yüksek değer olduğu ve böylelikle diğer değişkenlerin bu ölçekteki değerlerinin daha düşük olduğu göz önüne alındığında nasıl bu kadar düşük olabilir?


dat <- iris [, c (2: 3,5)] deneyin ve daha yüksek VI-değerleri
almalı

Yanıtlar:


26

Bu özellik hakkında bir bütün olarak mı yoksa özellik içindeki belirli değerler hakkında mı?

  • "Küresel" değişken önemi , verilen bir değişkenin eğitimden sonra ancak tahminden önce izin verildiği durumlarda, tüm torba dışı çapraz onaylanmış tahminler üzerindeki doğruluğun azalmasıdır. "Küresel" tamdır. Yerel değişken önemi , her bir çanta dışı çapraz onaylı tahmin tarafından yapılan doğruluk azalmasıdır. Global değişken önemi en popüler olanıdır, çünkü değişken başına tek bir sayıdır, tüm tahminlere göre ortalaması alındığından daha kolay ve daha sağlamdır.

Her iki durumda da, Doğruluktaki Ortalama Düşüş söz konusu özelliği (veya özellikten değerleri) modelden kaldırmak suretiyle yanlış sınıflandırılan gözlemlerin sayısı veya oranı mı?

  1. tren ormanı
  2. çanta dışı CV doğruluğunu ölçün → OOB_acc_base
  3. değişken değişkeni
  4. çanta dışı CV doğruluğunu ölçün → OOB_acc_perm_i
  5. VI_i = - (OOB_acc_perm_i - OOB_acc_base)

- " Bu, Petal.Length öğesinin modelden kaldırılmasının, ortalama olarak 8 veya daha fazla gözlemin yanlış sınıflandırılmasıyla sonuçlanacağı anlamına mı geliyor? "

  • Evet. Hem Petal uzunluğu hem de Petal genişliği sadece mükemmel doğrusal ayrılmaya sahiptir. Bu nedenle değişkenler gereksiz bilgileri paylaşır ve yalnızca birine izin vermek, modeli engellemez.

" Petal.Length için Doğruluktaki Ortalama Düşüş Bu ölçekteki en yüksek değer olduğu ve bu nedenle diğer değişkenlerin bu ölçüdeki değerlerinin daha düşük olduğu göz önüne alındığında nasıl bu kadar düşük olabilir? "

  • Yedekli değişkenler üzerine sağlam / düzenli bir model eğitildiğinde, tek değişkenlerdeki permütasyonlara karşı oldukça dirençlidir.

Temelde değişkenlerinizin yararını sıralamak için temel olarak değişken önemini kullanın. Değişken öneme sahip mutlak değerlerin açık bir yorumunu yapmak zordur.

GINI: GINI'nin önemi, ortalama bir saflık kazancını verilen bir değişkenin parçalarına göre ölçer. Değişken yararlı ise, karışık etiketli düğümleri saf tek sınıf düğümlere bölme eğilimindedir. İzin verilen değişkenlerle ayrılma, düğüm saflıklarını artırma ya da azaltma eğiliminde değildir. Yararlı bir değişkene izin vermek, ortalama gini kazancında nispeten büyük bir düşüş sağlama eğilimindedir. GINI'nin önemi, yerel karar fonksiyonuyla yakından ilgilidir, rastgele orman en uygun olanı seçmek için kullanır. Bu nedenle, hesaplanması fazla zaman almaz. Öte yandan, yerel bölmelerdeki ortalama gini kazancı, genel model performansındaki değişimin aksine, ölçülecek en iyi şey değildir. Gini önemi genel olarak (permütasyona dayalı) değişken önemine göre daha fazla önyargılı, daha dengesiz olduğu ve daha dolaylı bir soruyu cevaplama eğiliminde olduğu için önemsizdir.


Değişken öneminin basit sıralamanın ötesinde yorumlanması için aşağıdakileri kontrol edin: "Sınıflandırma problemi için iki değişkenli değişken seçimi" -Vivian W. Ng ve Leo Breiman digitalassets.lib.berkeley.edu/sdtr/ucb/text/692.pdf
Soren Havelund Welling

Cevabınız için çok teşekkür ederim! Bazı yerlerde, ortalama düşüşün OOB hata oranındaki artış (yani yüzde olarak) olarak tanımlandığını gördüm . Gönderdiğiniz formül aynı zamanda bir hata oranı gösteriyor gibi görünüyor: (OOB_acc_perm_i - OOB_acc_base). Ancak Doğruluktaki Ortalama Azalışın yanlış sınıflandırılmış gözlem sayısına atıfta bulunduğundan emin misiniz?
FlacoT

1
Değişken önemi bir azalma olduğundan, eksi önünde unutmayın. Birimlerle ilgili fazla spesifik değildim, bunlar% olarak ifade edilebilir ya da saf oranlar / oranlar önemli değil. Fakat doğruluk olarak evet = 1-error_rate, VI_i = error_rate_perm_i - error_rate_base. Regresyon için, permütasyon değişkeni birimi, tipik olarak açıklanan açıklamanın% azalması ve gini önem birimi, ortalama_square_error-kazancının ortalama azalmasıdır. “Ancak Doğruluktaki Ortalama Düşüşün yanlış sınıflandırılmış gözlemlerin sayısından bahsettiğinden emin misiniz? ” -Hayır, doğruluk bir sayı değil, kesirdir.
Soren Havelund Welling,

10

RandomForest yardım kılavuzundan doğruluktaki ortalama düşüşün (MDA) açıklaması:

İlk ölçüm, OOB verilerinin izin vermesinden hesaplanır: Her ağaç için, verilerin paket dışı kısmı üzerindeki tahmin hatası kaydedilir (sınıflandırma için hata oranı, regresyon için MSE). Daha sonra, her bir tahmin değişkenine izin verildikten sonra aynı şey yapılır. İkisi arasındaki fark, daha sonra tüm ağaçların üzerinden ortalaması alınır ve farklılıkların standart sapması ile normalleştirilir. Farklılıkların standart sapması bir değişken için 0'a eşitse, bölme yapılmaz (ancak bu durumda ortalama neredeyse her zaman 0'a eşittir).

Açıklamaya göre, MDA'daki "doğruluk" aslında, tek tek modellerin doğruluğunu , ormanın hata oranıyla daha fazla ilgilendiğimiz gerçeğinden bağımsız olarak ifade eder . Yani,

“Bu, Petal.Length öğesinin modelden kaldırılmasının, ortalama olarak 8 veya daha fazla gözlemin yanlış bir şekilde sınıflandırılmasına neden olacağı anlamına mı geliyor?”

  • 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

Bir açıklama olarak, Soren tarafından açıklanan MDA prosedürü randomForest paketinin uygulanmasından farklıdır. Bir MDA'dan istediklerimize daha yakın: bütün orman modelinin doğruluk azalması. Bununla birlikte, model muhtemelen Petal.Length olmadan farklı bir şekilde takılacak ve diğer tahmin edicilere daha fazla güvenecektir. Böylece Soren'in MDA'sı çok karamsar olurdu.


İki takip sorusu: 1. Başka paketlerin @Soren? 2. MDA'nın RandomForest'teki yorumu bir test istatistiği ise, yeterince büyük bir test istatistiğinin H0'ı reddetmek için ne kadar büyük bir kural olduğuna benzer bir şey var mı? MDA bilinen bir dağılımı takip ediyor mu?
FlacoT

1. Üzgünüm, başka bir paket denemedim. 2. Bu sadece bir test istatistiği gibidir. Dağılıma ne erişilebilir (ne kadar az insanın baktığını bildiğim kadarıyla) ne de testin kendisi anlamlı - Testin FOREST hakkında gerçek bir ilgimiz olan bir sonuç çıkardığını sanmıyorum.
Jianyu,

4

San Francisco Üniversitesi'ndeki bir ekibin yakın tarihli (blog yazısı) [ https://explained.ai/rf-importance/index.html] , hem R (randomForest) hem de Python'daki (scikit) varsayılan önem stratejilerinin güvenilmez olduğunu gösteriyor birçok veri senaryosunda. Özellikle, potansiyel tahmin değişkenleri ölçüm ölçeklerinde veya kategori sayılarında değişiklik gösterdiğinde, safsızlık önem ölçümlerindeki ortalama düşüş önyargılıdır.

Makaleler ve blog yazısı, daha az kategorili değişkenlere kıyasla eşit derecede informatif olsalar bile, safsızlık önem sıralamasında ortalama azalmada sürekli ve yüksek kardinalite değişkenlerinin nasıl tercih edildiğini göstermektedir. Yazarlar bu durumlarda varsayılan yerine permütasyon önemini kullanmayı önermektedir. Modelinizdeki yordayıcı değişkenleri arasında yüksek korelasyon varsa, şartlı permütasyon önemi önerilmektedir.

Kirlilik önyargılıdır, çünkü her defasında bir değişken bir kesme noktası seçilir, en iyi kesme noktasını bulmak için değişkenin her seviyesi test edilir. Sürekli veya yüksek kardinalite değişkenleri, “çoklu test” problemi ile sonuçlanan daha birçok bölünmüş noktaya sahip olacaktır. Diğer bir deyişle, değişkenlerin sonucu iyi tahmin etme şansına sahip olma olasılığı yüksektir, çünkü daha fazla bölmenin denendiği değişkenler ağaçta daha sık görünecektir.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.