В чем разница между анализом основных компонентов (PCA) и выбором функций в машинном обучении? Является ли PCA средством выбора признаков?
Разница между PCA (анализ основных компонентов) и выбором функций
Ответы (4)
PCA — это способ выяснить, какие функции важны для лучшего описания дисперсии в наборе данных. Чаще всего он используется для уменьшения размерности большого набора данных, чтобы стало более практичным применять машинное обучение, когда исходные данные по своей природе имеют большую размерность (например, распознавание изображений).
Однако PCA имеет ограничения, поскольку он основан на линейных отношениях между элементами функций, и часто неясно, каковы отношения, прежде чем вы начнете. Поскольку он также «скрывает» элементы функций, которые мало влияют на дисперсию данных, иногда он может устранить небольшое, но существенное отличие, которое может повлиять на производительность модели машинного обучения.
Вы можете сделать выбор функции с помощью PCA.
Анализ главных компонентов (АГК) — это метод, который
«использует ортогональное преобразование для преобразования набора наблюдений возможно коррелированных переменных в набор значений некоррелированных переменных, называемых главными компонентами».
Вопрос, на который PCA помогает нам ответить фундаментально, заключается в следующем: какие из этих M-параметров объясняют значительное количество вариаций, содержащихся в наборе данных? PCA по существу помогает применить правило 80-20: может ли небольшое подмножество параметров (скажем, 20%) объяснить 80% или более вариации данных?
Но у него есть некоторые недостатки: он чувствителен к масштабу и придает больший вес данным с более высоким порядком величины. Нормализация данных не всегда может быть решением, как объясняется здесь:
Существуют и другие способы выбора функций:
Алгоритм выбора признаков можно рассматривать как комбинацию метода поиска для предложения новых подмножеств признаков вместе с мерой оценки, которая оценивает различные подмножества признаков. Самый простой алгоритм состоит в том, чтобы протестировать каждое возможное подмножество функций и найти тот, который минимизирует частоту ошибок. Это исчерпывающий поиск в пространстве, и с вычислительной точки зрения он невозможен для всех наборов признаков, кроме самых маленьких. Выбор метрики оценки сильно влияет на алгоритм, и именно эти метрики оценки различают три основные категории алгоритмов выбора признаков: обертки, фильтры и встроенные методы.
В некоторых областях извлечение признаков может предложить определенные цели: при обработке изображений вам может потребоваться выполнить обнаружение пятен, краев или гребней.
Просто чтобы добавить к очень хорошим ответам выше. Разница в том, что PCA попытается уменьшить размерность, исследуя, как одна функция данных выражается с точки зрения других функций (линейная зависимость). Вместо этого при выборе функций учитывается цель. Он ранжирует ваши входные переменные с точки зрения того, насколько они полезны для прогнозирования целевого значения. Это верно для одномерного выбора признаков. Выбор многомерных признаков также может сделать то, что можно считать формой PCA, в том смысле, что он отбрасывает некоторые из входных признаков. Но не заходите в эту аналогию слишком далеко.
Просто чтобы добавить к ответу @Roger Rowland. В контексте обучения с учителем (классификация, регрессия) мне нравится думать о PCA как о «преобразователе функций», а не как о селекторе функций.
PCA основан на извлечении осей, по которым данные демонстрируют наибольшую изменчивость. Хотя он «распространяет» данные в новом базисе и может очень помочь в обучении без учителя, нет никакой гарантии, что новые оси согласуются с дискриминационными признаками в задаче с учителем.
Проще говоря, нет никакой гарантии, что ваши основные компоненты будут наиболее информативными, когда речь идет о прогнозировании зависимой переменной (например, метки класса).
Эта статья является полезным источником. Другая релевантная ссылка, прошедшая перекрестную проверку, находится здесь.