2013-04-27 2 views

ответ

23

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

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

+1

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

5

Вы можете сделать выбор функции с помощью PCA.

анализ главных компонент (РС) представляет собой метод, который

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

Вопрос о том, что PCA помогает нам в принципе ответить: Какой из этих параметров M объясняет значащее количество изменений , содержащихся в наборе данных? PCA по существу помогает применять правило 80-20 : может ли небольшое подмножество параметров (скажем, 20%) объяснить 80% или более изменений в данных?

(see here)

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

http://www.simafore.com/blog/bid/105347/Feature-selection-with-mutual-information-Part-2-PCA-disadvantages

Есть другие способы сделать выбор функции:

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

(see here)

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

+0

Как это относится к вопросу выбора функции через PCA? PCA генерирует новые функции, он не сразу помогает выбирать функции из исходного пространства функций. Вторая часть вашего ответа касается выбора функции в контролируемых проблемах; неясно, ищет ли ОП это. PCA является неотъемлемой технологией без надзора, и единственное упоминание о неконтролируемом выборе функции, которое я вижу в связи с этим, - это анализ основных функций: http://venom.cs.utsu/dmz/techrep/2007/CS-TR-2007-011 .pdf Я спросил, как реализовать это в R по адресу http://stackoverflow.com/q/32811659/1840471. –

1

Просто добавьте ответ @Roger Rowland. В контексте контролируемого обучения (классификация, регрессия) мне нравится думать о PCA как о «функциональном трансформаторе», а не о селекторе функций.

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

Проще говоря, нет никакой гарантии, что ваши главные главные компоненты являются наиболее информативными, когда речь идет о предсказании зависимой переменной (например, метки класса).

This paper - полезный источник. Другая релевантная перекрестная ссылка: here.

2

Просто чтобы добавить к очень хорошим ответам выше. Разница в том, что PCA попытается уменьшить размерность, исследуя, как одна особенность данных выражается в терминах других функций (linear dependecy). Выбор функции вместо этого учитывает цель. Он будет оценивать ваши входные переменные с точки зрения того, насколько они полезны для прогнозирования целевого значения. Это верно для одномерного выбора функции. Функция выбора нескольких вариаций также может сделать что-то, что можно рассматривать как форму PCA, в том смысле, что оно отбросит некоторые функции на входе. Но не принимайте эту аналогию слишком далеко.

Смежные вопросы