Разница между PCA (анализ основных компонентов) и выбором функций

В чем разница между анализом основных компонентов (PCA) и выбором функций в машинном обучении? Является ли PCA средством выбора признаков?


person AbhinavChoudhury    schedule 27.04.2013    source источник


Ответы (4)


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

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

person Roger Rowland    schedule 27.04.2013
comment
Я думаю, что ключевым моментом здесь является то, что PCA — это неконтролируемый метод, в то время как выбор признаков обычно (но не всегда) относится к контролируемым проблемам. Можно использовать PCA для описания набора данных, который может выявить важность определенных переменных за счет высоких абсолютных нагрузок на нескольких ПК, или добавить основные компоненты в контролируемую модель, чтобы упростить ее выполнение. Однако в целом PCA не является инструментом выбора функций как таковым. - person Max Ghenis; 27.09.2015

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

Анализ главных компонентов (АГК) — это метод, который

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

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

(см. здесь)< /а>

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

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

Существуют и другие способы выбора функций:

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

(см. здесь)

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

person kiriloff    schedule 28.04.2013
comment
Как это решает вопрос выбора функций через PCA? PCA генерирует новые признаки, он не помогает сразу выбрать признаки из исходного пространства признаков. Вторая часть вашего ответа касается выбора функций в контролируемых задачах; неясно, ищет ли это OP. PCA по своей сути является неконтролируемой техникой, и единственное упоминание о неконтролируемом выборе признаков, связанное с ним, я вижу в Анализе основных признаков: venom.cs.utsa.edu/dmz/techrep/2007/CS-TR-2007-011.pdf Я спросил, как реализовать это в R на stackoverflow.com/q/32811659/1840471. - person Max Ghenis; 27.09.2015

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

person AlbertoAndreotti    schedule 25.04.2016

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

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

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

Эта статья является полезным источником. Другая релевантная ссылка, прошедшая перекрестную проверку, находится здесь.

person Zhubarb    schedule 31.03.2016