Python машинное обучение, выбор функций
Я работаю над задачей классификации, связанной с письменным текстом, и мне интересно, насколько важно выполнить какую-то процедуру "выбора признаков", чтобы улучшить результаты классификации.
Я использую ряд функций (около 40), связанных с предметом, но я не уверен, действительно ли все функции актуальны или нет, и в каких сочетаниях. Я эксперементирую с SVM (scikits) и LDAC (mlpy).
Если есть сочетание релевантных и нерелевантных функций, я предполагаю, что получу плохие результаты классификации. Должен ли я выполнить "процедуру выбора признаков" перед классификацией?
Scikits имеет процедуру RFE, основанную на дереве, которая может ранжировать функции. Имеет ли смысл ранжировать объекты с помощью RFE на основе дерева, чтобы выбрать наиболее важные функции и выполнить фактическую классификацию с использованием SVM (нелинейного) или LDAC? Или мне следует реализовать какой-нибудь метод-обертку, использующий один и тот же классификатор для ранжирования объектов (попытка классификации по разным группам объектов потребует очень много времени)?
2 ответа
Просто попробуйте посмотреть, улучшит ли он рейтинг классификации по результатам перекрестной проверки. Также перед тем, как попробовать RFE, я бы попробовал схемы с меньшей нагрузкой на процессор, такие как одномерный выбор функций chi2.
Наличие 40 функций не так уж плохо. Некоторому машинному обучению мешают нерелевантные функции, но многие вещи достаточно надежны для них (например, наивный Байес, SVM, деревья решений). Вам, вероятно, не нужно делать выбор функции, если вы не решите добавить еще много функций в.
Это не плохая идея, чтобы отбросить бесполезные функции, но не тратьте свое собственное умственное время, чтобы попробовать это, если у вас нет особой мотивации.