Warum pca
in Matlab, ich kann die orthogonale HauptkomponentenmatrixWarum gibt 'pca' in Matlab keine orthogonalen Hauptkomponenten?
Zum Beispiel nicht bekommen:
A=[3,1,-1;2,4,0;4,-2,-5;11,22,20];
A =
3 1 -1
2 4 0
4 -2 -5
11 22 20
>> W=pca(A)
W =
0.2367 0.9481 -0.2125
0.6731 -0.3177 -0.6678
0.7006 -0.0150 0.7134
>> PCA=A*W
PCA =
0.6826 2.5415 -2.0186
3.1659 0.6252 -3.0962
-3.9026 4.5028 -3.0812
31.4249 3.1383 -2.7616
Hier ist jede Spalte eine Hauptkomponente. Also,
>> PCA(:,1)'*PCA(:,2)
ans =
84.7625
Aber die Hauptkomponente Matrix hat nicht zueinander orthogonale Komponenten.
Ich überprüfte einige Materialien, es heißt, sie sind nicht nur unkorreliert, sondern streng orthogonal. Aber ich kann nicht das gewünschte Ergebnis erzielen. Kann mir jemand sagen, wo ich falsch gelaufen bin?
Danke!
Es ist effizienter 'bsxfun' zu verwenden, als' repmat' für die mittlere Zentrierung: 'A_PCA = bsxfun (@ minus, A, Mittelwert (A)) * W' – Dan
Ja. Ich habe gerade diesen Code in Eile geschrieben. –
Oh, ohne meine Mitte, das habe ich verpasst! Vielen Dank! –