Einfaches Beispiel für PCA mit Matplotlib

8

Ich versuche, eine einfache Hauptkomponentenanalyse mit matplotlib.mlab.PCA durchzuführen, aber mit den Attributen der Klasse kann ich keine saubere Lösung für mein Problem finden. Hier ist ein Beispiel:

Erhalte Dummy-Daten in 2D und starte PCA:

%Vor%

Nun möchte ich einfach die Hauptkomponenten als Vektoren in meinen ursprünglichen Koordinaten erhalten und sie als Pfeile auf meine Daten zeichnen.

Was ist ein schneller und sauberer Weg dorthin?

Danke, Tyrax

    
Tyrax 18.08.2013, 13:19
quelle

1 Antwort

23

Ich glaube nicht, dass die Klasse mlab.PCA für das geeignet ist, was Sie tun möchten. Insbesondere skaliert die Klasse PCA die Daten neu, bevor sie die Eigenvektoren findet:

%Vor%

Die center -Methode dividiert durch sigma :

%Vor%

Dies führt zu Eigenvektoren, pca.Wt , wie folgt:

%Vor%

Sie sind senkrecht, aber nicht direkt relevant für die Hauptachsen Ihrer Originaldaten. Sie sind Hauptachsen in Bezug auf massierte Daten.

Vielleicht ist es einfacher, direkt zu codieren, was Sie wollen (ohne die mlab.PCA -Klasse):

%Vor%

    
unutbu 18.08.2013, 13:56
quelle

Tags und Links