Kérdés:
Hogyan vetítsünk új vektort a PCA-helyre?
pixel
2010-09-12 21:11:23 UTC
view on stackexchange narkive permalink

A főkomponens-elemzés (PCA) elvégzése után egy új vektort szeretnék vetíteni a PCA-helyre (azaz megtalálni annak koordinátáit a PCA-koordinátarendszerben).

Számítottam a PCA-t R nyelven a prcomp . Most meg kell tudnom szaporítani a vektoromat a PCA rotációs mátrixszal. A mátrix főkomponenseit sorokba vagy oszlopokba kell rendezni?

Négy válaszokat:
chl
2010-09-12 22:03:16 UTC
view on stackexchange narkive permalink

Nos, a @Srikant már megadta a helyes választ, mivel a forgatás (vagy betöltések) mátrix oszloponként elrendezett sajátvektorokat tartalmaz, így csak meg kell szorozni (a % *% használatával) a vektorát vagy új adatok mátrixa pl prcomp (X) $ rotation . Vigyázzon azonban a PCA EV-k kiszámításakor alkalmazott extra központosítási vagy méretezési paraméterekkel.

Az R-ben hasznos lehet a predict () függvény is, lásd: ? megjósolni.prcomp . BTW, egyszerűen megadhatja, hogy miként valósul meg az új adatok vetítése:

  getS3method ("előrejelzés", "prcomp")  
Ben Rollert
2014-07-23 04:12:44 UTC
view on stackexchange narkive permalink

A @ chl fantasztikus válaszához (+1) hozzáadva könnyebb megoldást is használhat:

  # végrehajtja a fő összetevők elemzését pca <- prcomp (data) # új adatokat vetít rá a PCA űrskála (newdata, pca $ center, pca $ scale)% *% pca $ rotation 

Ez nagyon hasznos, ha nem akarja menteni a teljes pca objektum az newdata kivetítésére a PCA-helyre.

Tom
2014-10-28 12:21:24 UTC
view on stackexchange narkive permalink

SVD-ben, ha A egy mxn mátrix, a jobb oldali V egyes mátrix legfelső k sora az A eredeti oszlopainak k-dimenziós ábrázolása, ahol k < = n

A = UΣV t
=> A t = VΣ t U t = VΣU t
=> A t U = VΣU t U = VΣ ----------- (mert U merőleges) => A t -1 = VΣΣ -1 = V

Tehát $ V = A ^ tUΣ $ -1

Az A t sorai vagy az A oszlopai az V. oszlopaihoz.
Ha az új adatok mátrixa, amelyen PCA-t kell végrehajtani a dimenziócsökkentéshez, Q, aqxn mátrix, akkor a képlet segítségével számítsa ki $ R = Q ^ tUΣ $ -1 , akkor az R eredmény a kívánt eredményt. R egy n-n mátrix, és az R legfelső k sora (n-nek k-ként tekinthető) Q oszlopainak új ábrázolása a k-dimenziós térben.

user28
2010-09-12 21:24:35 UTC
view on stackexchange narkive permalink

Úgy gondolom, hogy a sajátvektorokat (vagyis a fő komponenseket) oszlopként kell rendezni.



Ezt a kérdést és választ automatikusan lefordították angol nyelvről.Az eredeti tartalom elérhető a stackexchange oldalon, amelyet köszönünk az cc by-sa 2.0 licencért, amely alatt terjesztik.
Loading...