J'ai récemment découvert le merveilleux PCA et j'ai fait l'exemple décrit dans la documentation scikit-learn .
Je souhaite savoir comment appliquer l'APC à de nouveaux points de données à des fins de classification.
Après avoir visualisé PCA dans un plan bidimensionnel (axe x, y), je vois que je peux probablement tracer une ligne pour séparer les points de données de sorte qu'un côté serait d'une classification et l'autre d'une autre classification. Comment dessiner cette "frontière" et l'appliquer aux nouveaux points de données?
classification
pca
scikit-learn
vlasnalknsd
la source
la source
Réponses:
PCA est un outil de réduction de dimension, pas un classificateur. Dans Scikit-Learn, tous les classificateurs et estimateurs ont une
predict
méthode que PCA n'a pas . Vous devez adapter un classificateur sur les données transformées par PCA. Scikit-Learn possède de nombreux classificateurs. Voici un exemple d'utilisation d'un arbre de décision sur des données transformées par l'ACP. J'ai choisi le classificateur d'arbre de décision car il fonctionne bien pour les données avec plus de deux classes, ce qui est le cas avec l'ensemble de données iris.SciKit learn possède un outil pratique appelé Pipeline qui vous permet de chaîner des transformateurs et un classificateur final:
Cela est particulièrement utile lorsque vous effectuez une validation croisée car cela vous empêche de réadapter accidentellement N'IMPORTE QUELLE étape du pipeline sur votre jeu de données de test:
Soit dit en passant, vous n'aurez peut-être même pas besoin d'utiliser PCA pour obtenir de bons résultats de classification. L'ensemble de données iris n'a pas beaucoup de dimensions et les arbres de décision fonctionnent déjà bien sur les données non transformées.
la source
Si vous souhaitez appliquer PCA à de nouvelles données, vous devez d'abord avoir ajusté un modèle sur un ensemble de données d'apprentissage. Quel modèle allez-vous demander? Il s'agit du vecteur moyen que vous avez soustrait de l'ensemble de données, des variances que vous avez utilisées pour "blanchir" chaque vecteur de données et de la matrice de mappage apprise. Donc, pour mapper un nouvel ensemble de données dans le même espace que les données d'entraînement, vous devez d'abord soustraire la moyenne, la blanchir et la mapper avec la matrice de mappage.
la source