2016-11-04 8 views
0

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

После изучения методов выбора функций при обучении машинам кажется, что он попадает в три разные категории: фильтр, обертка и встроенные методы. и методы фильтрации могут быть либо одномерными, либо многомерными. Имеет смысл использовать либо фильтр (многомерный), либо метод обёртки, потому что оба - как я понял - ищут наилучшее подмножество, однако, поскольку я не использую классификатор, как его использовать?

  1. Имеет ли смысл применять такие методы (например, рекурсивная функция отборочных) в DT или Random Forest классификатором где функции имеют правил есть, а затем взять получившееся наилучшее подмножество и кормил в мои рамки ? **

  2. Кроме того, так как большинство из алгоритмов, предоставляемых Scikit учиться являются одномерными алгоритмами, есть ли какие-либо другие библиотеки , которые обеспечивают более алгоритмы выбора функции подмножества питона на основе?

ответ

0

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

Еще один способ оценить важность функции - выбрать любой классификатор, который вам нравится, обучить его и оценить производительность на основе проверки. Запишите точность, и это будет ваш базовый уровень. Затем возьмите тот же разбор поезда/валидации и произвольно переставьте все значения вдоль одного параметра функции. Затем тренируйтесь и проверяйте снова. Запишите разницу этой точности с вашей базовой линии. Повторите это для всех параметров функции. Результатом будет список номеров для каждого параметра функции, который указывает на его важность.

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

Вот исходный документ, где я узнал, что трюк: http://www.stat.berkeley.edu/~breiman/RandomForests/cc_home.htm#varimp (. Он должен работать для других классификаторов, чем случайные леса)

+0

Большого спасибо, это действительно полезно ... так это значит, что я могу на самом деле используйте классификатор для определения важных функций на шаге выбора функций, а затем используйте эту важную функцию для подачи в другую структуру (а не тот же классификатор, который используется на шаге выбора функции)? – Ophilia

+0

Я не понимаю, почему нет. Классификаторы все о дразнить, как X-данные могут использоваться для дремания желаемого выходного сигнала в данных y. Все они должны найти, какая информация на самом деле информативна (против шума) на каком-то уровне. Может быть, классификаторы могут не согласиться с тем, что важно в сигнале, но как шаг выбора функции это должно быть хорошо. – Erotemic

+0

Спасибо большое! Это было очень полезно – Ophilia