Recentemente, aprendi sobre o maravilhoso PCA e fiz o exemplo descrito na documentação do scikit-learn .
Estou interessado em saber como posso aplicar o PCA a novos pontos de dados para fins de classificação.
Depois de visualizar o PCA em um plano bidimensional (eixo x, y), vejo que provavelmente posso desenhar uma linha para separar os pontos de dados, de modo que um lado seja de uma classificação e o outro de outra classificação. Como faço para desenhar esse "limite" e aplicá-lo aos novos pontos de dados?
classification
pca
scikit-learn
vlasnalknsd
fonte
fonte
Respostas:
O PCA é uma ferramenta de redução de dimensão, não um classificador. No Scikit-Learn, todos os classificadores e estimadores têm um
predict
método que o PCA não possui . Você precisa ajustar um classificador nos dados transformados pelo PCA. O Scikit-Learn possui muitos classificadores. Aqui está um exemplo de uso de uma árvore de decisão em dados transformados por PCA. Eu escolhi o classificador da árvore de decisão, pois ele funciona bem para dados com mais de duas classes, como é o caso do conjunto de dados da íris.O SciKit learn tem uma ferramenta conveniente chamada Pipeline, que permite conectar transformadores e um classificador final:
Isso é especialmente útil ao realizar a validação cruzada, pois evita que você reajuste acidentalmente QUALQUER etapa do pipeline no conjunto de dados de teste:
A propósito, talvez você nem precise usar o PCA para obter bons resultados de classificação. O conjunto de dados da íris não possui muitas dimensões e as árvores de decisão já terão um bom desempenho nos dados não transformados.
fonte
Se você deseja aplicar o PCA a novos dados, deve primeiro ajustar um modelo em alguns conjuntos de dados de treinamento. Qual é o modelo que você perguntará? Esse é o vetor médio que você subtraiu do conjunto de dados, as variações usadas para "embranquecer" cada vetor de dados e a matriz de mapeamento aprendida. Portanto, para mapear o novo conjunto de dados no mesmo espaço que os dados de treinamento, você subtrai a média, embranquece-a e mapeia-a com a matriz de mapeamento.
fonte