результаты двух алгоритмов выбора признаков не совпадают

Я работаю над двумя алгоритмами выбора функций для реальной проблемы, где размер выборки составляет 30, а размер функции - 80. Первый алгоритм - это выбор функций с оболочкой с использованием классификатора SVM, второй - алгоритм выбора функций фильтра с использованием корреляции Pearson product-moment. коэффициент и коэффициент ранговой корреляции Спирмена. Получается, что выбранные признаки этими двумя алгоритмами вообще не пересекаются. Это разумно? Означает ли это, что я допустил ошибки в своей реализации? Спасибо. К вашему сведению, я использую Libsvm + Matlab.


person jarjar    schedule 04.11.2013    source источник


Ответы (2)


Это определенно может произойти, поскольку обе стратегии не имеют одинаковой силы выражения.

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

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

Корреляции или другие «фильтры», такие как взаимная информация, лучше использовать либо для того, чтобы отфильтровать признаки, чтобы решить, какие признаки не учитывать, чем для того, чтобы решить, какие признаки следует учитывать. Фильтры необходимы, когда начальное количество функций очень велико (сотни, тысячи), чтобы уменьшить нагрузку на последующий алгоритм-оболочку.

person damienfrancois    schedule 04.11.2013
comment
спасибо за ваше объяснение, но я все еще смущен тем, что, взяв в качестве примера корреляцию Пирсона, если одна функция сильно коррелирует с выходными данными (метками), используя эту функцию в линейном SVM, результат также должен быть хорошим, поскольку это будет легко найти линейные границы между классами (для моего случая 4 класса). Или это потому, что SVM максимизирует границы, так что данные, находящиеся далеко от границ, не важны, даже если они сильно коррелируют с выходными данными? Может быть, вместо этого мне следует использовать линейный дискриминантный анализ? - person jarjar; 04.11.2013
comment
Действительно, корреляция и линейный SVM не решают одну и ту же задачу оптимизации, поэтому оптимальное решение одного не является оптимальным решением другого в теории. На практике для «простых» данных признак с высоким коэффициентом корреляции Пирсона с меткой должен быть хорошим признаком для линейного SVM. За исключением (1), если есть выбросы (одна отдельная точка может давать коэффициент корреляции, близкий к 1, если она очень удалена от других) и/или - person damienfrancois; 04.11.2013
comment
(2) если есть несколько коллинеарных объектов. Это также может зависеть от значений параметр C в SVM. Обязательно оптимизируйте его. Дисбаланс классов также может повлиять на результаты. В простой задаче с двумя гауссовскими классами все методы (включая LDA) дадут одинаковые результаты; на реальных, шумных, несбалансированных, малых выборках, негауссовских задачах они могут давать отличные результаты. - person damienfrancois; 04.11.2013
comment
Я выбираю значение C, используя поиск по сетке и перекрестную проверку. Выбранное значение достигло максимальной точности моих тренировочных данных. Я думаю, что это может быть проблема с дисбалансом. - person jarjar; 19.11.2013

В зависимости от распределения данных вы можете использовать либо Спирмена, либо Пирсона. Последний используется для нормального распределения, а первый — для ненормального. Найдите распределение и используйте подходящее.

person Jyothi Jain    schedule 06.06.2015