Re: [裝死] PCA
ㄟ.. 不好意思
因為他code寫得很沒有programming style(其實他註解有寫:P)
所以我搞錯了
基本上最後output的部分
也就是"Projections of column-points on first # prin. comps."
就是 C*E (C是correlation matrix, E是eigenvector matrix by column)
不過還是不知道為什麼要算C*E?
因為這只是一個對角矩陣乘上E
(the diognal matrix is composed of sqrt(eigenvalues))
反正大家會用到的應該就只有eigenvalue eigenvector
以及row-projection而已
以上來自老詹跟我徹夜討論的結果
po完收工 我要回宿舍了 掰掰
※ 引述《ugoc (不要和我嘴砲)之銘言:
: ※ 引述《WayneZheng (放心)》之銘言:
: : 程式其實有算所有的eigenvector 只是output前三個而已
: : 我有改了一下 改成可以下參數for要幾個principal components
: : 程式在我家目錄下 /home/wayne/pca_wayne.c
: : usage:
: : ./pca matrix.txt 36 8 6 R
: : data row column # of princ. option
: : 然後我還是搞不懂他最後output "projection of column-points" 是什麼意思
: : 我trace了一下 他是這樣算的:
: : project_1
: : [ project_2 ] = [e1 e2 ... em] * [e_max ... e_min]
: : |
: : project_m
: : project_i 相當於把所有eigenvectors的第i個element collect成一個vector
: : 然後再投影到eigenvector的空間
: : 不懂這樣的projection有什麼意思?
: 那天碩尹有和我解釋過,我講一下我記得的東西
: 如果有說錯幫我指正一下謝謝。
: Assume input是 N*4,每一筆資料就是1*4
: a_11 a_12 a_13 a_14 ---> 一筆
: a_21 a_22 a_23 a_24 ---> 一筆
: ..............
: ..............
: a_N1 a_N2 a_N3 a_N4
: 做correlation analysis即
: 建造一個4*4的matrix M(4*4)
: N
: 其中M_xy = Sum (a_ix * a_iy)
: i=1
: 不過好像有先做zero mean,不太記得了~
: anyway這個matrix求其eigenvalues及對應的eigenvectors(都是四個)
: 就形成eigenspace
: 如果想要做dimension reduction就取前幾個,例如只取3個
: 原本的4維就會投影到3維
: 大概是這樣吧,有錯請補充
: btw我剛才重看了一次,我看錯猴子的問題了
: 他的問題我還沒搞懂…
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 140.112.21.23
推
01/10 22:35, , 1F
01/10 22:35, 1F
推
01/11 09:20, , 2F
01/11 09:20, 2F
討論串 (同標題文章)