Имеет ли смысл делать PCA перед проведением рандомизации леса?
Я имею дело с многомерными текстовыми данными, и я хочу сделать сокращение возможностей, чтобы помочь избежать проклятия размерности, но разве Случайные Леса уже к некоторому уменьшению размеров уже?
mtry
для построения каждого дерева требуется только случайное их подмножество (так называемый параметр). Существует также метод исключения рекурсивных функций, построенный на основе RF-алгоритма (см. Пакет varSelRF R и ссылки в нем). Однако, безусловно, возможно добавить исходную схему сокращения данных, хотя она должна быть частью процесса перекрестной проверки. Вопрос в том, хотите ли вы ввести линейную комбинацию своих функций в RF?Ответы:
Лео Бриман писал, что «размерность может быть благословением». В общем, случайные леса могут работать на больших наборах данных без проблем. Насколько велики ваши данные? Различные области обрабатывают вещи по-разному в зависимости от предметных знаний. Например, в исследованиях по экспрессии генов гены часто отбрасываются на основании низкой дисперсии (без подсчета результатов) в процессе, который иногда называют неспецифической фильтрацией. Это может помочь со временем бега в случайных лесах. Но это не обязательно.
Придерживаясь примера экспрессии генов, иногда аналитики используют оценки PCA для представления измерений экспрессии генов. Идея состоит в том, чтобы заменить похожие профили одним баллом, который потенциально менее беспорядочный. Случайные леса могут выполняться как по исходным переменным, так и по баллам PCA (суррогат для переменных). Некоторые сообщили о лучших результатах с этим подходом, но нет никаких хороших сравнений с моими знаниями.
В общем, нет необходимости делать PCA перед запуском RF. Но вы можете. Интерпретация может меняться в зависимости от ваших целей. Если все, что вы хотите сделать, это предсказать, интерпретация может быть менее важной.
источник
Я хотел бы добавить свои два цента к этому, так как я думал, что существующие ответы были неполными.
Выполнение PCA может быть особенно полезно перед тренировкой случайного леса (или LightGBM, или любого другого метода, основанного на дереве решений) по одной конкретной причине, которую я иллюстрировал на рисунке ниже.
По сути, это может значительно упростить процесс поиска идеальной границы принятия решений, выровняв ваш тренировочный набор по направлениям с наибольшей дисперсией.
Деревья решений чувствительны к ротации данных, поскольку создаваемая ими граница решений всегда вертикальна / горизонтальна (то есть перпендикулярна одной из осей). Поэтому, если ваши данные выглядят как левая картинка, для разделения этих двух кластеров потребуется гораздо большее дерево (в данном случае это дерево из 8 слоев). Но если вы выровняете свои данные по основным компонентам (как на рисунке справа), вы сможете добиться идеального разделения всего одним слоем!
Конечно, не все наборы данных распределяются таким образом, поэтому PCA может не всегда помогать, но все же полезно попробовать и посмотреть, так ли это. И просто напоминание, не забудьте перед выполнением PCA нормализовать ваш набор данных к разнице единиц измерения!
PS: Что касается уменьшения размерности, я согласен с остальными людьми в том, что для случайных лесов это обычно не такая большая проблема, как для других алгоритмов. Но все же, это может помочь немного ускорить ваши тренировки. Время обучения дерева решений O (n m log (m)), где n - количество обучающих экземпляров, m - количество измерений. И хотя случайные леса случайным образом выбирают подмножество измерений для каждого дерева для обучения, чем меньше доля от общего числа выбранных вами измерений, тем больше деревьев вам нужно обучить для достижения хорошей производительности.
источник
PCA перед случайным лесом может быть полезен не для уменьшения размерности, а для придания данным формы, в которой случайный лес может работать лучше.
Я уверен, что в целом, если вы преобразуете свои данные с помощью PCA, сохраняя прежнюю размерность исходных данных, у вас будет лучшая классификация со случайным лесом
источник