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, x1
eşit olarak dağıtılmışsa, yanlılık yoktur; Eğer x1
katlanarak 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.