Saya menggunakan paket randomForest di R (R versi 2.13.1, randomForest versi 4.6-2) untuk regresi dan melihat bias yang signifikan dalam hasil saya: kesalahan prediksi tergantung pada nilai variabel respon. Nilai tinggi di bawah prediksi dan nilai rendah di atas prediksi. Pada awalnya saya menduga ini adalah konsekuensi dari data saya, tetapi contoh sederhana berikut menunjukkan bahwa ini melekat pada algoritma hutan acak:
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)
Saya menduga bias tergantung pada distribusi respon, misalnya, jika x1
didistribusikan secara seragam, tidak ada bias; jika x1
didistribusikan secara eksponensial, biasnya sepihak. Pada dasarnya, nilai-nilai respons di ekor distribusi normal adalah outlier. Tidak mengherankan bahwa model akan mengalami kesulitan memprediksi outlier. Dalam kasus randomForest, nilai respons dengan magnitudo ekstrem dari ekor distribusi lebih kecil kemungkinannya berakhir di daun terminal dan efeknya akan terhapus dalam rata-rata ensembel.
Perhatikan bahwa saya mencoba menangkap efek ini dalam contoh sebelumnya, "RandomForest in R linear regression tails mtry". Ini adalah contoh yang buruk. Jika bias dalam contoh di atas benar-benar melekat pada algoritma, maka bias koreksi dapat dirumuskan mengingat distribusi respons yang coba diprediksi, sehingga menghasilkan prediksi yang lebih akurat.
Apakah metode berbasis pohon, seperti hutan acak, tunduk pada bias distribusi respons? Jika demikian, apakah ini sebelumnya diketahui oleh komunitas statistik dan bagaimana biasanya dikoreksi (misalnya model kedua yang menggunakan residu dari model bias sebagai input)?
Koreksi dari bias yang bergantung pada respons sulit karena, pada dasarnya, responsnya tidak diketahui. Sayangnya, perkiraan / respons yang diprediksi tidak sering berbagi hubungan yang sama dengan bias.