Ich habe kürzlich etwas über die wunderbare PCA gelernt und das in der Scikit-Learn-Dokumentation beschriebene Beispiel ausgeführt .
Ich bin interessiert zu wissen, wie ich PCA für Klassifizierungszwecke auf neue Datenpunkte anwenden kann.
Nachdem ich PCA in einer zweidimensionalen Ebene (x-, y-Achse) visualisiert habe, sehe ich, dass ich wahrscheinlich eine Linie zeichnen kann, um die Datenpunkte so zu trennen, dass eine Seite einer Klassifizierung und die andere einer anderen Klassifizierung entspricht. Wie zeichne ich diese "Grenze" und wende sie auf die neuen Datenpunkte an?
classification
pca
scikit-learn
vlasnalknsd
quelle
quelle
Antworten:
PCA ist ein Werkzeug zur Dimensionsreduzierung, kein Klassifikator. In Scikit-Learn haben alle Klassifikatoren und Schätzer eine
predict
Methode, die PCA nicht verwendet . Sie müssen einen Klassifikator an die PCA-transformierten Daten anpassen. Scikit-Learn hat viele Klassifikatoren. Hier ist ein Beispiel für die Verwendung eines Entscheidungsbaums für PCA-transformierte Daten. Ich habe den Entscheidungsbaumklassifikator gewählt, da er für Daten mit mehr als zwei Klassen gut funktioniert, was beim Iris-Dataset der Fall ist.SciKit learn verfügt über ein praktisches Tool namens Pipeline, mit dem Sie Transformatoren und einen endgültigen Klassifikator miteinander verketten können :
Dies ist besonders nützlich, wenn Sie eine Kreuzvalidierung durchführen, da Sie nicht versehentlich einen Schritt der Pipeline in Ihren Testdatensatz einpassen:
Übrigens müssen Sie möglicherweise nicht einmal PCA verwenden, um gute Klassifizierungsergebnisse zu erzielen. Der Iris-Datensatz hat nicht viele Dimensionen und Entscheidungsbäume funktionieren bereits gut mit den nicht transformierten Daten.
quelle
Wenn Sie PCA auf neue Daten anwenden möchten, müssen Sie zuerst ein Modell in einen Trainingsdatensatz eingepasst haben. Was ist das Modell, das Sie fragen werden? Dies ist der mittlere Vektor, den Sie vom Datensatz subtrahiert haben, die Varianzen, mit denen Sie jeden Datenvektor "weiß" gemacht haben, und die gelernte Mapping-Matrix. Um einen neuen Datensatz im selben Bereich wie die Trainingsdaten abzubilden, subtrahieren Sie zunächst den Mittelwert, machen ihn weiß und ordnen ihn der Zuordnungsmatrix zu.
quelle