PCA é realmente apenas uma rotação. Sério, é tudo: é uma maneira inteligente de girar os dados para uma nova base. Essa base possui propriedades que a tornam útil como uma etapa de pré-processamento para vários procedimentos.
A base é ortonormal . Isso é incrivelmente útil se seus recursos exibirem multicolinearidade (dois ou mais recursos são linearmente dependentes): a aplicação do PCA é garantida para fornecer uma base onde isso não é mais um problema. Este procedimento é conhecido como regressão de componente principal
Os vetores de base são significativos no que diz respeito à disseminação dos dados: eles são os vetores próprios da matriz de covariância . Essa segunda propriedade dá origem à famosa utilidade do PCA como uma técnica de redução de dimensionalidade: após rotacionar os dados, projetar os dados em um subconjunto dos vetores de base associados a uma porção significativa da variação total produz uma representação dimensional mais baixa que (geralmente) retém ( a maioria das) propriedades estruturais (interessantes) dos dados.
Então: é um algoritmo de aprendizado? Esta é uma espécie de questão filosófica. O que faz de algo um algoritmo de aprendizado? Certamente, o PCA não é um algoritmo de aprendizado "supervisionado", já que podemos fazê-lo com ou sem uma variável de destino, e geralmente associamos técnicas "não supervisionadas" ao agrupamento.
Sim, o PCA é um procedimento de pré-processamento. Mas, antes que você escreva completamente como não "aprendendo" algo, eu gostaria que você considerasse o seguinte: O PCA pode ser calculado pegando literalmente os autovetores da matriz de covariância, mas não é assim que geralmente é feito na prática. Um procedimento numericamente equivalente e mais eficiente em termos de computação é apenas pegar o SVD dos dados. Portanto, o PCA é apenas uma aplicação específica do SVD, portanto, perguntar se o PCA é um algoritmo de aprendizado é realmente perguntar se o SVD é um algoritmo de aprendizado.
Agora, embora você se sinta à vontade para desconsiderar o PCA como um algoritmo de aprendizado, aqui está o porquê de você se sentir menos à vontade fazendo o mesmo com o SVD: é um método surpreendentemente poderoso para modelagem de tópicos e filtragem colaborativa . As propriedades do SVD que o tornam útil para esses aplicativos são exatamente as mesmas propriedades que o tornam útil para a redução de dimensionalidade (ou seja, PCA).
O SVD é uma generalização da composição eigend, e isso também é extremamente poderoso, mesmo como uma versão restrita do SVD. Você pode executar a detecção da comunidade em um gráfico observando os autovetores da matriz de adjacência ou determinar as probabilidades de estado estacionário de um modelo markov observando os autovetores da matriz de transição, que coincidentemente também é essencialmente a maneira como o PageRank é calculado.
Sob o capô, o PCA está executando uma operação simples de álgebra linear. Porém, essa é exatamente a mesma operação subjacente a muitos aplicativos aos quais a maioria das pessoas não questionaria a aplicação do rótulo "aprendizado de máquina". Essa classe de algoritmos é chamada de Fatoração de matriz e até se estende a técnicas sofisticadas como word2vec : na verdade, você pode obter resultados semelhantes a word2vec literalmente apenas aplicando PCA a uma matriz de co-ocrorage de palavras . Generalizando novamente, outra palavra para os resultados do PCA é uma incorporação . O Word2vec é provavelmente o exemplo mais famoso de incorporação, mas a construção de incorporações (como intermediários) também é um componente importante da arquitetura codificador-decodificador usada nas RNNse GANs , que são a ponta da pesquisa de ML no momento.
Então, voltando à sua pergunta: o PCA é um "algoritmo de aprendizado de máquina?" Bem, se não estiver, você deve estar preparado para dizer o mesmo sobre filtragem colaborativa, modelagem de tópicos, detecção de comunidade, centralidade de rede e modelos de incorporação também.
Só porque é simples álgebra linear não significa que também não é mágica.