Считается ли PCA алгоритмом машинного обучения?


10

Я понял, что анализ главных компонентов - это метод уменьшения размерности, то есть, учитывая 10 входных объектов, он даст меньшее количество независимых элементов, которые являются ортогональными и линейными преобразованиями исходных элементов.

Является ли PCAсам по себе рассматривается как алгоритм обучения или это шаг предварительной обработки данных.

Ответы:


9

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

Редактировать:

Так как мой ответ был выбран (не знаю почему), я подумал, что добавлю больше деталей.

PCA делает две вещи, которые эквивалентны. Во-первых, и то, что обычно называют, это максимизирует дисперсии. Во-вторых, он сводит к минимуму ошибку реконструкции, рассматривая парные расстояния.

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

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

Это сложно? Нет, не совсем, но уменьшает ли это как алгоритм? Нет, я так не думаю.


3
Я чувствую, что этот ответ является чисто мнением и не представляет аргумента. Может быть, разработать, включить и признать замечания, сделанные другими.
Гоббс

15

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

  1. Основа ортонормирована . Это невероятно полезно, если ваши функции демонстрируют мультиколлинеарность (две или более функций линейно зависят): применение PCA гарантированно даст вам основу, в которой это больше не проблема. Эта процедура известна как регрессия основного компонента

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


Итак: это алгоритм обучения? Это своего рода философский вопрос. Что делает что-то алгоритм обучения? Конечно, PCA не является «контролируемым» алгоритмом обучения, поскольку мы можем делать это с целевой переменной или без нее, и мы обычно связываем «неконтролируемые» методы с кластеризацией.

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

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

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

Под капотом PCA выполняет простую операцию линейной алгебры. Но это точно та же самая операция, которая лежит в основе многих приложений, к которым большинство людей не ставит под сомнение применение ярлыка «машинное обучение». Этот класс алгоритмов называется матричной факторизацией и даже распространяется на сложные методы, такие как word2vec : на самом деле, вы можете получить результаты, похожие на word2vec, буквально просто применяя PCA к матрице совпадений слов . Обобщая еще раз, еще одно слово для результатов PCA является вложение . Word2vec, вероятно, является наиболее известным примером встраивания, но построение встраиваний (как посредников) также является важным компонентом архитектуры кодера-декодера, используемой в RNN.и GAN , которые являются передовым краем исследований ОД в настоящее время.


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

То, что это простая линейная алгебра, не означает, что это не волшебство.


6

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


4

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

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.