O PCA é considerado um algoritmo de aprendizado de máquina


10

Entendi que a análise de componentes principais é uma técnica de redução de dimensionalidade, ou seja, considerando 10 recursos de entrada, ele produzirá um número menor de recursos independentes que são a transformação ortogonal e linear dos recursos originais.

Por PCAsi só, é considerado um algoritmo de aprendizado ou é uma etapa de pré-processamento de dados.

Respostas:


9

Não é incomum alguém rotular isso como uma técnica não supervisionada. Você pode fazer algumas análises nos vetores próprios e que ajudam a explicar o comportamento dos dados. Naturalmente, se a sua transformação ainda tiver muitos recursos, esse processo poderá ser bastante difícil. No entanto, é possível, portanto, considero o aprendizado de máquina.

Editar:

Desde que minha resposta foi selecionada (não faço ideia do porquê), achei que adicionaria mais detalhes.

O PCA faz duas coisas que são equivalentes. Primeiro, e o que é comumente referido, maximiza as variações. Em segundo lugar, minimiza o erro de reconstrução observando distâncias entre pares.

Observando os vetores próprios e os valores próprios, torna-se bastante simples deduzir quais variáveis ​​e recursos estão contribuindo para a variação e também como as variáveis ​​diferentes se movem em conjunto com outras.

No final, isso realmente depende de como você define "aprendizado". O PCA aprende um novo espaço de recurso que captura as características do espaço original. Costumo pensar que isso pode ser significativo.

É complexo? Não, na verdade não, mas isso diminui isso como um algoritmo? Não, eu não penso assim.


3
Eu sinto que esta resposta é puramente opinião e não apresenta um argumento. Talvez elaborar, incluir e reconhecer pontos apresentados por outros.
Hobbes

15

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.

  1. 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

  2. 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.


6

Absolutamente, não é um algoritmo de aprendizado, pois você não aprende nada no PCA. No entanto, ele pode ser usado em diferentes algoritmos de aprendizado para obter um melhor desempenho em real, como a maioria dos outros métodos de redução de dimensão.


4

O PCA é usado para eliminar recursos redundantes. Ele encontra as direções nas quais os dados são altamente distribuídos. Não se importa com os rótulos dos dados, porque é uma projeção que representa os dados no sentido menos quadrado. Análise Discriminante Múltipla, MDAtente encontrar projeções que melhor separem os dados. Este último considera o rótulo e encontra instruções para que os dados possam ser separados da melhor maneira, embora tenha alguns detalhes sobre o tipo de decisão que encontra. Para finalizar, PCAnão é um algoritmo de aprendizado. Ele apenas tenta encontrar instruções de quais dados são altamente distribuídos para eliminar recursos correlatos. Abordagens semelhantes, como MDAtentar encontrar instruções para classificar os dados. Embora MDAseja muito parecidoPCA, mas o primeiro é usado para classificação, considera os rótulos, mas o último não é usado diretamente para classificação.

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.