Когда регистрировать / расширять ваши переменные при использовании моделей с произвольным лесом?

13

Я делаю регрессию, используя случайные леса для прогнозирования цен на основе нескольких атрибутов. Код написан на Python с использованием Scikit-learn.

Как вы решаете, должны ли вы преобразовывать свои переменные, используя exp/ logперед тем, как использовать их для соответствия регрессионной модели? Обязательно ли это при использовании ансамблевого подхода, такого как Random Forest?

Nyxynyx
источник
3
Я думаю, что это немного отличается от этого вопроса из-за аспекта случайного леса / ансамбля, но вопрос может быть перефразирован после просмотра другого поста.
Питер Флом - Восстановить Монику
@PeterFlom, не могли бы вы помочь мне перефразировать вопрос? Я не достаточно опытный в этой области :)
Nyxynyx
То, как большинство людей использует термин «ансамбль», является всего лишь 1 потенциальным вкладом в ансамбль.
Hack-R

Ответы:

16

Способ построения случайных лесов инвариантен к монотонным преобразованиям независимых переменных. Расколы будут полностью аналогичными. Если вы просто стремитесь к точности, вы не увидите никаких улучшений. Фактически, поскольку случайные леса способны находить сложные нелинейные (почему вы называете это линейной регрессией?) Отношения и переменные взаимодействия на лету, если вы преобразуете свои независимые переменные, вы можете сгладить информацию, которая позволяет этому алгоритму выполнять это правильно.

Иногда случайные леса не рассматриваются как черный ящик и используются для вывода. Например, вы можете интерпретировать показатели важности переменных, которые он предоставляет, или рассчитать некоторый предельный эффект вашей независимой переменной на зависимую переменную. Это обычно визуализируется как графики частичной зависимости. Я почти уверен, что на эту последнюю вещь сильно влияет масштаб переменных, что является проблемой при попытке получить информацию более описательного характера из случайных лесов. В этом случае это может помочь вам преобразовать ваши переменные (стандартизировать), что может сделать графики частичной зависимости сопоставимыми. Не совсем уверен в этом, придется подумать над этим.

Не так давно я пытался предсказать данные подсчета, используя Случайный Лес, регрессия на квадратный корень и натуральный логарифм зависимой переменной помогли немного, немного, и недостаточно, чтобы позволить мне сохранить модель.

Некоторые пакеты, где вы можете использовать случайные леса для вывода:

https://uc-r.github.io/lime

https://cran.r-project.org/web/packages/randomForestExplainer/index.html

https://pbiecek.github.io/DALEX_docs/2-2-useCaseApartmetns.html

JEquihua
источник
6

Повторяя @JEquihua, точность предсказания Случайного леса не улучшится.

Также обратите внимание, что если вы сохраняете исходный и преобразованный предсказатели (как это часто делается в линейной регрессии), это может вызвать проблемы. Это потому, что RF случайным образом выбирает подмножество переменных для роста каждого дерева, и вы, по сути, помещаете преобразованную переменную дважды. Если это сильный предсказатель, он привыкнет, и ваши случайные леса не будут такими некоррелированными, как могли бы, что приведет к более высокой дисперсии.

Скотт Кайзер
источник
1
Вставка в любой модели преобразованного и нетрансформированного предиктора - ужасная идея. Они идеально коллинеарны и, безусловно, будут портить вашу модель, будь то случайный лес или линейная регрессия.
mkt - Восстановить Монику