Rasgele ormanda aşırı sığmayı nasıl önleyebilirim?


11
  1. Rastgele ormanda aşırı sığmayı önlemek istiyorum. Bu bağlamda, mtry, nodesize ve maxnodes vb. Kullanmayı düşünüyorum. Lütfen bu parametreler için değerler seçmeme yardım eder misiniz? R kullanıyorum.

  2. Ayrıca, mümkünse, lütfen rastgele orman için k-kat çapraz doğrulamayı nasıl kullanabileceğimi söyle (R'de).

Yanıtlar:


7

Diğer modellere kıyasla, Rastgele Ormanların fazla uyması daha az olasıdır, ancak yine de kaçınmak için açık bir çaba sarf etmek istediğiniz bir şeydir. Model parametrelerini ayarlamak kesinlikle aşırı takılmayı önlemenin bir unsurudur, ancak tek değildir. Aslında, eğitim özelliklerinizin, özellikle Rastgele Ormanlarda, model parametrelerine göre aşırı sığmaya yol açmasının daha muhtemel olduğunu söyleyebilirim. Bu yüzden, anahtarın, her şeyden daha fazla uyuşmayı kontrol etmek için modelinizi değerlendirmek için gerçekten güvenilir bir yöntemi olduğunu düşünüyorum, bu da bizi ikinci sorunuza getiriyor.

Yukarıda belirtildiği gibi, çapraz doğrulamanın çalıştırılması aşırı takılmayı önlemenizi sağlayacaktır. CV sonuçlarına göre en iyi modelinizi seçmek, fazla olmayan bir modele yol açacaktır, bu da çanta dışı hatası gibi bir şey için geçerli değildir. R'de CV çalıştırmanın en kolay yolu caretpakettir. Basit bir örnek aşağıdadır:

> library(caret)
> 
> data(iris)
> 
> tr <- trainControl(method = "cv", number = 5)
> 
> train(Species ~ .,data=iris,method="rf",trControl= tr)
Random Forest 

150 samples
  4 predictor
  3 classes: 'setosa', 'versicolor', 'virginica' 

No pre-processing
Resampling: Cross-Validated (5 fold) 

Summary of sample sizes: 120, 120, 120, 120, 120 

Resampling results across tuning parameters:

  mtry  Accuracy  Kappa  Accuracy SD  Kappa SD  
  2     0.96      0.94   0.04346135   0.06519202
  3     0.96      0.94   0.04346135   0.06519202
  4     0.96      0.94   0.04346135   0.06519202

Accuracy was used to select the optimal model using  the largest value.
The final value used for the model was mtry = 2. 

Yanıt ve tavsiye için çok teşekkür ederim. RandomForest algoritmasını kullanarak önemli değişkenleri seçmeyle karşılaştırıldığında özellik seçimi için bir düzeltme paketi kullanmanın ne kadar farklı olduğunu bilmek ister misiniz?
Arun

Bu, yayınlamak için farklı bir soru gibi geliyor - caret'te seçtiğiniz herhangi bir algoritmayı kullanarak özyinelemeli özellik seçimi gibi şeyler yürütmeniz göz önüne alındığında farklar çok büyük.
David

@David "Çanta dışı hatası gibi bir şey için durum böyle olmayabilir" ile ne demek istiyorsun? Torbadan çıkma tahmininin aşırı takılmayı önlemek için iyi bir yol olmadığı anlamına mı geliyor?
Pierre

5

@ xof6, modelin derinliği ne kadar fazla olursa, fazla uyuma eğilimi gösterirse de doğrudur, ancak sizin için yararlı olabilecek bazı parametreler eklemek istedim. R ile hangi paketi kullandığınızı bilmiyorum ve R'ye hiç aşina değilim, ancak orada uygulanan bu parametrelerin muadilleri olması gerektiğini düşünüyorum.

Ağaç sayısı - Bu sayı ne kadar büyük olursa, ormanın fazla yerleştirme olasılığı o kadar az olur. Bu, her karar ağacı eğitim verilerinin bir yönünü öğrenirken, konuşmak için daha fazla seçenek elde edeceğiniz anlamına gelir. Özellik sayısı - Bu sayı, her bir ağacın kaç özelliği öğrendiğini gösterir. Bu sayı büyüdükçe, ağaçlar gittikçe daha karmaşık hale gelir, bu nedenle test verilerinde bulunmayan kalıpları öğrenirler. Doğru değeri bulmak biraz deneme gerektirecek, ancak makine öğrenimi de böyle olacak. Bahsettiğimiz gibi genel derinliği de deneyin!


4

İşte stackexchange üzerinde güzel bir bağlantı /stats/111968/random-forest-how-to-handle-overfitting , ancak genel deneyimim modelin daha fazla derinliğe sahip olması eğilimi fazla takmak.


Bu, tek bir ağaç sınıflandırıcısıyla anlamlıdır. Bununla birlikte, bu forumlarda rastgele ormanların aşırı uyuma karşı korunduğunu ve ağaçların tamamen yetiştirilmesi gerektiğini okudum (yani sınıflandırma için nodesize = 1).
Seanosapien

0

Her zaman, mtrytren veri kümesindeki hata artıncaya kadar azalırım, sonra trendeki veri kümesi ile veri kümesi arasındaki fark azalıncaya kadar düğüm boyutunu ve derinliği düşürürüm

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.