Я використовую пакет randomForest в R (R версія 2.13.1, randomForest версія 4.6-2) для регресії і помітив у своїх результатах значну зміщення: помилка прогнозування залежить від значення змінної відповіді. Високі значення занижені, а низькі - завищені. Спочатку я підозрював, що це є наслідком моїх даних, але наступний простий приклад говорить про те, що це властиво алгоритму випадкових лісів:
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)
Я підозрюю, що упередженість залежить від розподілу відповіді, наприклад, якщо x1
вона рівномірно розподілена, немає упередженості; якщо x1
розподілено експоненціально, зміщення однобічне. По суті, значення реакції на хвости нормального розподілу - це колишні. Не дивно, що моделі буде складно передбачити випускників. У випадку randomForest величина відгуку надзвичайної величини від хвоста розподілу менше шансів потрапити в кінцевий лист, і його ефект вимиється в середньому ансамблі.
Зауважте, що я намагався зафіксувати цей ефект у попередньому прикладі "RandomForest в R лінійних регресійних хвостів mtry". Це був поганий приклад. Якщо зміщення у наведеному вище прикладі справді притаманне алгоритму, то випливає, що корекція зміщення може бути сформульована з урахуванням розподілу відповідей, який намагається передбачити, в результаті чого більш точні прогнози.
Чи підлягають деревним методам, таким як випадковий ліс, зміщення розподілу відповідей? Якщо так, то чи відомо це раніше спільноті статистики і як воно зазвичай виправляється (наприклад, друга модель, яка використовує залишки зміщеної моделі як вхідні дані)?
Виправити зміщення, залежне від відповіді, важко, оскільки за своєю природою відповідь не відома. На жаль, оцінка / прогнозована відповідь не часто поділяють однакове відношення до упередженості.