Подтвердить что ты не робот

Нужно ли мне нормализовать (или масштабировать) данные для randomforest (R-пакет)?

Я выполняю задачу регрессии - мне нужно нормализовать (или масштабировать) данные для randomForest (R-пакет)? И необходимо ли масштабировать также целевые значения? И если - я хочу использовать функцию масштаба из пакета caret, но я не нашел, как вернуть данные (удаление накипи, денормализация). Разве вы не знаете о какой-либо другой функции (в любом пакете), которая полезна с нормализацией/денормализацией? Благодаря, Милан

4b9b3361

Ответ 1

Нет, масштабирование не требуется для случайных лесов.

  • Характер RF таков, что проблемы сходимости и численной точности, которые иногда могут вызывать алгоритмы, используемые в логистической и линейной регрессии, а также нейронные сети, не так важны. Из-за этого вам не нужно преобразовывать переменные в общий масштаб, например, с помощью NN.

  • У вас нет аналога коэффициента регрессии, который измеряет взаимосвязь между каждой переменной-предиктором и ответом. Из-за этого вам также не нужно учитывать, как интерпретировать такие коэффициенты, что влияет на переменные шкалы измерений.

Ответ 2

Я не вижу никаких предложений ни на странице справки, ни на Виньетте, которая предполагает, что масштабирование необходимо для переменной регрессии в randomForest. Этот пример в Stats Exchange не использует масштабирование.

Копия моего комментария: Функция scale не принадлежит pkg: caret. Это часть "базового" пакета R. В пакетах есть unscale функция grt и DMwR, который изменит преобразование, или вы можете просто умножить атрибут scale, а затем добавить значения атрибута центра.

Ваше понимание того, почему нужно "нормализовать", может потребовать критического анализа. Тестирование ненормальности необходимо только после того, как регрессия будет выполнена и может вообще не понадобиться, если нет предположений о нормальности в методологии пригодности. Итак: Почему вы спрашиваете? Поиск в SO и Stats.Exchange может оказаться полезным: цитата №1; цитата # 2; цитата № 3

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

Ответ 3

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

Ответ 4

Угадайте, что произойдет в следующем примере? Представьте, у вас есть 20 интеллектуальных характеристик, 18 из них находятся в диапазоне [0; 10], а остальные 2 в диапазоне [0, 1 000 000] (взяты из примера в реальной жизни). Вопрос 1: какие особенности важности назначаются случайным лесом. Вопрос 2: что произойдет с важностью функции после масштабирования двух функций большой дальности?

Масштабирование важно. Это то, что Random Forest менее чувствителен к масштабированию, а затем к другим алгоритмам и может работать с "грубо" масштабированными функциями.