Python машинное обучение, выбор функций - PullRequest
3 голосов
/ 11 марта 2012

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

Я использую числофункций (около 40), связанных с предметом, но я не уверен, действительно ли все функции актуальны или нет, и в каких сочетаниях.Я экспериментирую с SVM (scikits) и LDAC (mlpy).

Если у меня есть сочетание релевантных и нерелевантных функций, я предполагаю, что получу плохие результаты классификации.Должен ли я выполнить «процедуру выбора объекта» перед классификацией?

Scikits имеет процедуру RFE, основанную на дереве, которая может ранжировать объекты .Имеет ли смысл ранжировать объекты с помощью RFE на основе дерева, чтобы выбрать наиболее важные функции и выполнить фактическую классификацию с использованием SVM (нелинейного) или LDAC?Или мне следует реализовать какой-нибудь метод-обертку, использующий один и тот же классификатор для ранжирования объектов (попытка классификации по различным группам объектов потребует очень много времени)?

Ответы [ 2 ]

1 голос
/ 12 марта 2012

Просто попробуйте посмотреть, улучшит ли он классификационный балл, измеренный с помощью перекрестная проверка . Также перед тем, как попробовать RFE, я бы попробовал схемы с меньшей нагрузкой на процессор, такие как одномерный выбор функции chi2 .

0 голосов
/ 31 октября 2012

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

Это неплохая идея - отбросить бесполезные функции, но не тратьте свое собственное умственное время на это, если у вас нет особой мотивации.

...