Rasgele orman regresyonunda tepki dağılımına bağlı yanlılık


9

Regresyon için R (R sürüm 2.13.1, randomForest sürüm 4.6-2) randomForest paketini kullanıyorum ve sonuçlarımda önemli bir önyargı fark ettim: tahmin hatası yanıt değişkeninin değerine bağlıdır. Yüksek değerler az tahmin edilir ve düşük değerler fazla tahmin edilir. İlk başta bunun verilerimin bir sonucu olduğundan şüphelendim, ancak aşağıdaki basit örnek bunun rastgele orman algoritmasına özgü olduğunu göstermektedir:

n = 1000; 
x1 = rnorm(n, mean = 0, sd = 1)
response = x1
predictors = data.frame(x1=x1) 
rf = randomForest(x=predictors, y=response)
error = response-predict(rf, predictors)
plot(x1, error)

Yanlılığın, yanıtın dağılımına bağlı olduğundan şüpheleniyorum, örneğin, x1eşit olarak dağıtılmışsa, yanlılık yoktur; Eğer x1katlanarak dağıtılır, önyargı tek taraflıdır. Esasen, normal dağılımın kuyruklarındaki yanıtın değerleri aykırı değerlerdir. Bir modelin aykırı değerleri tahmin etmekte zorluk çekmesi şaşırtıcı değildir. RandomForest durumunda, bir dağılımın kuyruğundan aşırı büyüklükte bir tepki değerinin bir terminal yaprağına girmesi daha az olasıdır ve etkisi topluluk ortalamasında yıkanacaktır.

Önceki bir örnekte, "R lineer regresyon kuyrukları mtry" bu örnek yakalamaya çalıştığımı unutmayın. Bu kötü bir örnekti. Yukarıdaki örnekteki sapma algoritmaya gerçekten özgüse, tahmin etmeye çalıştığı yanıt dağılımı göz önüne alındığında bir sapma düzeltmesinin formüle edilebileceği ve daha doğru tahminlerle sonuçlanabileceği anlaşılmaktadır.

Rastgele orman gibi ağaç tabanlı yöntemler, yanıt dağıtım yanlılığına tabi midir? Öyleyse, bu daha önce istatistik topluluğu tarafından biliniyor mu ve genellikle nasıl düzeltilir (örneğin, önyargılı modelin kalıntılarını girdi olarak kullanan ikinci bir model)?

Yanıt bağımlı bir yanlılığın düzeltilmesi zordur, çünkü doğası gereği yanıt bilinmemektedir. Ne yazık ki, tahmin / tahmin edilen cevap genellikle önyargı ile aynı ilişkiyi paylaşmaz.


Yaklaşık 12 aydır aynı soru üzerinde duruyorum. Stats.stackexchange.com/questions/21530/… ve kaggle.com/forums/t/1106/random-forests-newbie-question adresine bakın . Sorunun, aykırı değerlerin her bir düğümde tahmin olarak kullanılan ortalamalar tarafından iyi temsil edilmediğini kabul ediyorum. Tahmin düzenlemesi veya düğüm içi model makul yaklaşımlar gibi görünür, ancak standart yaklaşımın ne olduğundan emin değilim.
redcalx

Yanıtlar:


4

Şüphelendiğiniz gibi - yaprak düğümlerinin bazı nesneler kümesi üzerinde araçlar içermesi, herhangi bir regresyon ağacı modelinin yanıt dağılımını sıkmasını ve herhangi bir ekstrapolasyonu imkansız hale getirmesini sağlar. Topluluk elbette buna yardımcı olmaz ve aslında durumu daha da kötüleştirir.

Saf çözüm (ve aşırı takma nedeniyle tehlikeli), modeli istenen dağılımına yeniden ölçeklendirecek bir tür klasik regresyona sarmaktır.

Daha iyi çözüm, örneğin parti paketindeki MOB gibi, yaprak içi model modellerinden biridir. Buradaki fikir, problemin basit bir değere (normal ağaçta olduğu gibi) değil, yanıt ile bazı öngörücüler arasında basit bir ilişkiye (doğrusal diyelim) basitleştirildiğinde, özellik alanının bölümlenmesinin sona ermesi gerektiğidir. Bu ilişki şimdi dağılımı bozmayacak veya aşırı değerleri kırpmayacak ve tahmin edebilecek basit bir model takılarak çözülebilir.


Yanıt dağılımını yeniden ölçeklendirmek neden aşırı sığmaya neden olur? Orman çıktılarından herhangi biri arasındaki sipariş ilişkisi, yeniden ölçeklendirmek için bir polinom uyumundan geçtikten sonra aynı sırayı koruyacaktır, bu nedenle kararınızı çıktının miktarlarına dayandırırsanız, modelden karar almanız etkilenmeyecektir.
Jase

Haklısın; RF tamamen saçma bir cevap ürettiğinde ve regresyon onu aldatıcı bir şekilde daha iyi bir şeye dönüştürdüğünde bir senaryo düşünüyordumR2.

3

Çıngırak paketi üzerinden erişilen Koşullu RF ile aynı sorunu yaşadım. Bu konuda Graham Williams'a (çıngırak yazarı) e-postayla gönderdim, sorgumu cahil yazarlara iletti, yanıt veren ve aslında CRF belgelerinde herhangi bir yere başvurulmamış gibi görünen, ancak yine de adres gibi görünen iki parametre ile oynamayı önerdi sorun, yani minplit = 2 ve minbucket = 1.


minsplit, Demek istediğim
smci

2

Sabit bir dizi özellik için karşılık gelen herhangi bir yanıt değişkeni için, farklı mtry, örnekleme parametreleri ızgarası üzerinden örnek "çapraz doğrulanmış hatayı" en aza indirerek mtry ve örneklemenin optimum değerini tahmin etmeli ve ardından herhangi bir sonuç çıkarmalısınız. sonuçlar açısından. Expand.grid kullanarak grid parametrelerinin bir kombinasyonunu oluşturabilirsiniz.


2
Bu, bina modelleri için iyi bir öneridir, genel olarak optimize edilmiş parametreler daha doğru tahminler verecektir. Ancak bu durumda önyargı, ayarlamaya bakılmaksızın, anlayabildiğim kadarıyla var olur. Sadece bir belirleyici vardır, bu nedenle mtry 1 olmalıdır. N'den küçük herhangi bir örneklemin boyutu, önyargıları büyütmeye yarar ve düğüm boyutunun çok az etkisi vardır.
rumbleB
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.