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