Я делаю регрессию, используя случайные леса для прогнозирования цен на основе нескольких атрибутов. Код написан на Python с использованием Scikit-learn.
Как вы решаете, должны ли вы преобразовывать свои переменные, используя exp
/ log
перед тем, как использовать их для соответствия регрессионной модели? Обязательно ли это при использовании ансамблевого подхода, такого как Random Forest?
Ответы:
Способ построения случайных лесов инвариантен к монотонным преобразованиям независимых переменных. Расколы будут полностью аналогичными. Если вы просто стремитесь к точности, вы не увидите никаких улучшений. Фактически, поскольку случайные леса способны находить сложные нелинейные (почему вы называете это линейной регрессией?) Отношения и переменные взаимодействия на лету, если вы преобразуете свои независимые переменные, вы можете сгладить информацию, которая позволяет этому алгоритму выполнять это правильно.
Иногда случайные леса не рассматриваются как черный ящик и используются для вывода. Например, вы можете интерпретировать показатели важности переменных, которые он предоставляет, или рассчитать некоторый предельный эффект вашей независимой переменной на зависимую переменную. Это обычно визуализируется как графики частичной зависимости. Я почти уверен, что на эту последнюю вещь сильно влияет масштаб переменных, что является проблемой при попытке получить информацию более описательного характера из случайных лесов. В этом случае это может помочь вам преобразовать ваши переменные (стандартизировать), что может сделать графики частичной зависимости сопоставимыми. Не совсем уверен в этом, придется подумать над этим.
Не так давно я пытался предсказать данные подсчета, используя Случайный Лес, регрессия на квадратный корень и натуральный логарифм зависимой переменной помогли немного, немного, и недостаточно, чтобы позволить мне сохранить модель.
Некоторые пакеты, где вы можете использовать случайные леса для вывода:
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, точность предсказания Случайного леса не улучшится.
Также обратите внимание, что если вы сохраняете исходный и преобразованный предсказатели (как это часто делается в линейной регрессии), это может вызвать проблемы. Это потому, что RF случайным образом выбирает подмножество переменных для роста каждого дерева, и вы, по сути, помещаете преобразованную переменную дважды. Если это сильный предсказатель, он привыкнет, и ваши случайные леса не будут такими некоррелированными, как могли бы, что приведет к более высокой дисперсии.
источник