PCA на самом деле просто ротация. Серьезно, это все: это умный способ раскрутить данные на новую основу. Эта база обладает свойствами, которые делают ее полезной в качестве шага предварительной обработки для нескольких процедур.
Основа ортонормирована . Это невероятно полезно, если ваши функции демонстрируют мультиколлинеарность (две или более функций линейно зависят): применение PCA гарантированно даст вам основу, в которой это больше не проблема. Эта процедура известна как регрессия основного компонента
Базисные векторы имеют смысла в отношении распространения данных: они являются собственными векторами по ковариационной матрице . Это второе свойство порождает известную утилиту 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 «алгоритмом машинного обучения»? Что ж, если это не так, вы должны быть готовы сказать то же самое о совместной фильтрации, моделировании тем, обнаружении сообщества, централизации сети и моделях внедрения.
То, что это простая линейная алгебра, не означает, что это не волшебство.