Nächstes Spiel ich bekommen kann, ist laufen:Unterschied in den Ergebnissen Matlab, wenn PCA mit() und PCACOV()
data=rand(100,10); % data set
[W,pc] = pca(cov(data));
dann tun demean nicht
data2=data
[W2, EvalueMatrix2] = eig(cov(data2));
[W3, EvalueMatrix3] = svd(cov(data2));
In diesem Fall W2
und W3
zustimmen und W
ist die transpose von ihnen?
Noch nicht klar, warum W
sollte die Transponierte der beiden anderen sein?
Als zusätzliche Kontrolle I pcacov
verwenden:
[W4, EvalueMatrix4] = pcacov(cov(data2));
Wieder stimmt sie mit WE
und W3
aber ist die transponierte W
?
vielleicht 'pca' berechnet die Eigenvektoren der Kovarianzmatrix? [http://math.stackexchange.com/questions/3869/what-is-the-intuitive-relationship-between-svd-and-pca](http://math.stackexchange.com/questions/3869/what- is-the-intuitive-relation-zwischen-svd-and-pca) – shamalaia
Hast du 'eig' oder' svd' versucht? – Dan
Es der Link oben sagt, dass pca zentriert die Daten und verwendet SVD (so einige Unterschiede zu PCA Ergebnis erwartet werden könnte, aber diese Ergebnisse sind völlig anders?). Es besagt auch, dass die Eingabe durch eine n * p Matrix erfolgen sollte, wobei n die Beobachtung und p die Variablen sind, die nicht die Verwendung einer Kovarianzmatrix vorschlagen? – Bazman