Захист, що залежить від розподілу, у випадковій регресії лісу


9

Я використовую пакет 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". Це був поганий приклад. Якщо зміщення у наведеному вище прикладі справді притаманне алгоритму, то випливає, що корекція зміщення може бути сформульована з урахуванням розподілу відповідей, який намагається передбачити, в результаті чого більш точні прогнози.

Чи підлягають деревним методам, таким як випадковий ліс, зміщення розподілу відповідей? Якщо так, то чи відомо це раніше спільноті статистики і як воно зазвичай виправляється (наприклад, друга модель, яка використовує залишки зміщеної моделі як вхідні дані)?

Виправити зміщення, залежне від відповіді, важко, оскільки за своєю природою відповідь не відома. На жаль, оцінка / прогнозована відповідь не часто поділяють однакове відношення до упередженості.


Я роздумував над цим самим питанням майже 12 місяців. Дивіться stats.stackexchange.com/questions/21530/… та kaggle.com/forums/t/1106/random-forests-newbie-question . Я погоджуюся з тим, що проблема, здається, полягає в тому, що люди, що переживають люди, недостатньо представлені середніми показниками, які використовуються як прогнозування для кожного вузла. Налаштування прогнозування або модель у вузлі здаються розумними підходами, але не впевнені, що таке стандартний підхід.
redcalx

Відповіді:


4

Це ідеально, як ви підозрюєте - той факт, що вузли листя містять засоби над деяким набором об'єктів, унеможливлює будь-яку модель дерева регресії посилити розподіл відповідей і унеможливить будь-яку екстраполяцію. Ансамбль, звичайно, не допомагає в цьому і насправді погіршує ситуацію.

Наївне рішення (і небезпечне через переодягнення) полягає в тому, щоб загорнути модель в якусь класичну регресію, яка могла б змінити масштаб реакції на її бажаний розподіл.

Кращим рішенням є одна з моделей дерев, що складаються з листя, як, наприклад, MOB в пакеті партії. Ідея тут полягає в тому, що розділення простору функцій має закінчуватися, коли проблема спрощується не до простого значення (як у звичайному дереві), а до простого відношення (скажімо, лінійного) між відповіддю та деякими прогнокторами. Таке відношення зараз можна вирішити, встановивши просту модель, яка не порушить розподілу чи обрізає крайні значення і зможе екстраполювати.


Чому перерозподіл розподілу відповідей призведе до перевищення? Відносини впорядкування між будь-якими двома результатами лісових масивів зберігатимуть той самий порядок після натискання на поліномічну форму, щоб змінити його масштаб, тому на прийняття рішення з моделі не впливатиме, якщо ви базуєте своє рішення на квантових показниках.
Jase

Ти правий; Я думав про сценарій, коли РФ видає абсолютно нісенітницю відповідь, і регресія перетворює її в щось із обманливо кращим . R2

3

У мене був такий самий випадок із умовним радіочастотним доступом, на який можна отримати доступ через пакет "брязкальця". Я надіслав електронною поштою Грехама Вільямса (автора брязкальця) про це, який люб’язно переслав мій запит авторам cforest, які відповіли та запропонували пограти з двома параметрами, які насправді не посилаються ніде в документації CRF, але, тим не менш, здавалося, адресують проблема, а саме minplit = 2 і minbucket = 1.


minsplit, Я припускаю, що ви маєте на увазі
smci

2

Вам слід оцінити оптимальне значення mtry та sampsize, мінімізувавши вибіркову "перехресну перевірку помилок" за сіткою різних параметрів mtry, вибірки для будь-якої відповідної змінної відповіді для фіксованого набору функцій, а потім зробити будь-які висновки, з точки зору результатів. Ви можете створити комбінацію параметрів сітки за допомогою expand.grid.


2
Це гарна пропозиція для побудови моделей, загалом оптимізовані параметри дадуть більш точні прогнози. Однак у цьому випадку упередженість існує незалежно від настройки, наскільки я можу сказати. Існує лише один предиктор, тому mtry повинен бути 1. Будь-який розмір вибірки менше n служить лише для збільшення зміщення, а розмір вузлів має незначний ефект.
гуркітB
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.