看板 NTUEE_Speech 關於我們 聯絡資訊
ㄟ.. 不好意思 因為他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
anguso:推一下啊~! 01/10 22:35
ugoc:應該是E乘上對角矩陣 01/11 09:20