Я использую пакет randomForest в R (R версии 2.13.1, randomForest версии 4.6-2) для регрессии и заметил значительное отклонение в моих результатах: ошибка прогнозирования зависит от значения от переменной ответа. Высокие значения находятся под прогнозом, а низкие значения прогнозируются. Сначала я подозревал, что это было следствием моих данных, но следующий простой пример показывает, что это присуще случайному алгоритму леса:RandomForest in R линейные регрессионные хвосты mtry
n = 50;
x1 = seq(1,n)
x2 = matrix(1, n, 1)
predictors = data.frame(x1=x1, x2=x2)
response = x2 + x1
rf = randomForest(x=predictors, y=response)
plot(x1, response)
lines(x1, predict(rf, predictors), col="red")
Без сомнения, методы дерева не имеют свои ограничения, когда речь идет о линейности, но даже самый простой дерево регрессии, например tree() в R, не проявляет этого смещения. Я не могу представить, чтобы сообщество не осознавало этого, но не нашло упоминаний, как это вообще исправлено? Спасибо за любые комментарии
EDIT: Пример для этого вопроса является некорректным, смотрите «RandomForest для регрессии в R - распределения отклика зависимого смещения» при обмене стеки для улучшенной обработки https://stats.stackexchange.com/questions/28732/randomforest-for-regression-in-r-response-distribution-dependent-bias
спасибо Joran. Что-то не понравилось, и я рад видеть, что есть решение. К сожалению, для моей работы я уже настроил параметры с небольшим эффектом (за исключением, конечно, nTrees), и поэтому я в основном проигнорировал их для этого «простого» примера - я думаю, что смещение действительно существует в моем случае, снова спасибо – rumbleB
Достаточно справедливо. .. Хотя если это ограничено вашими данными, это действительно не предвзятость в РФ, не так ли? ;) У вас просто сложно моделировать данные! – joran
yup, предубеждение в РФ можно избежать - я изменил название этого вопроса, чтобы он мог быть более полезным для людей в будущем – rumbleB