СПС по многомерным текстовым данным до классификации случайных лесов?

13

Имеет ли смысл делать PCA перед проведением рандомизации леса?

Я имею дело с многомерными текстовыми данными, и я хочу сделать сокращение возможностей, чтобы помочь избежать проклятия размерности, но разве Случайные Леса уже к некоторому уменьшению размеров уже?

Maus
источник
7
ВЧ алгоритм на самом деле не страдает от большого количества предикторов, поскольку mtryдля построения каждого дерева требуется только случайное их подмножество (так называемый параметр). Существует также метод исключения рекурсивных функций, построенный на основе RF-алгоритма (см. Пакет varSelRF R и ссылки в нем). Однако, безусловно, возможно добавить исходную схему сокращения данных, хотя она должна быть частью процесса перекрестной проверки. Вопрос в том, хотите ли вы ввести линейную комбинацию своих функций в RF?
ЧЛ
Сколько функций / размеров, F? > 1K? > 10K? Являются ли признаки дискретными или непрерывными, например, частота-частота, tfidf, метрики подобия, векторы слов или что? Время выполнения PCA квадратично по отношению к F.
smci
Сильно связаны: stats.stackexchange.com/questions/258938
амеба говорит восстановить Монику

Ответы:

12

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

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

В общем, нет необходимости делать PCA перед запуском RF. Но вы можете. Интерпретация может меняться в зависимости от ваших целей. Если все, что вы хотите сделать, это предсказать, интерпретация может быть менее важной.

julieth
источник
Спасибо за ответ. Скорость - это проблема, более того, потому что у меня есть несколько тысяч возможных меток в проблеме с несколькими метками. Приложение классифицирует совокупность текстовых данных, взятых как из твиттера, так и из описания определенных событий аналитиками. Я использую взвешивание tf-idf и модель мешка слов.
Maus
8

Я хотел бы добавить свои два цента к этому, так как я думал, что существующие ответы были неполными.

Выполнение PCA может быть особенно полезно перед тренировкой случайного леса (или LightGBM, или любого другого метода, основанного на дереве решений) по одной конкретной причине, которую я иллюстрировал на рисунке ниже.

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

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

Конечно, не все наборы данных распределяются таким образом, поэтому PCA может не всегда помогать, но все же полезно попробовать и посмотреть, так ли это. И просто напоминание, не забудьте перед выполнением PCA нормализовать ваш набор данных к разнице единиц измерения!

PS: Что касается уменьшения размерности, я согласен с остальными людьми в том, что для случайных лесов это обычно не такая большая проблема, как для других алгоритмов. Но все же, это может помочь немного ускорить ваши тренировки. Время обучения дерева решений O (n m log (m)), где n - количество обучающих экземпляров, m - количество измерений. И хотя случайные леса случайным образом выбирают подмножество измерений для каждого дерева для обучения, чем меньше доля от общего числа выбранных вами измерений, тем больше деревьев вам нужно обучить для достижения хорошей производительности.

введите описание изображения здесь

Иван Баталов
источник
1

PCA перед случайным лесом может быть полезен не для уменьшения размерности, а для придания данным формы, в которой случайный лес может работать лучше.

Я уверен, что в целом, если вы преобразуете свои данные с помощью PCA, сохраняя прежнюю размерность исходных данных, у вас будет лучшая классификация со случайным лесом

Donbeo
источник
Время выполнения PCA является квадратичным по отношению к числу функций F, поэтому оно не всегда дешевое.
smci
под выступлениями я имел в виду предсказания. Я не имел в виду вычислительное время
Donbeo
2
Не могли бы вы добавить какое-либо обоснование в свои претензии? Кажется, что PCA не всегда улучшит результаты. Например, когда граница принятия решения инвариантна к поворотам (например, по кругу), выполнение PCA будет просто перемасштабировать и повернуть данные (и, следовательно, по кругу), но RF все равно придется аппроксимировать эллиптическую границу множеством прямоугольных разбиений.
Сикоракс говорит восстановить Монику