Re: [問題] 無法將data標準化後執行PCA

看板MATLAB作者 (亂入)時間16年前 (2009/11/26 15:16), 編輯推噓1(102)
留言3則, 1人參與, 最新討論串3/4 (看更多)
感謝您的建議 這裡PCA的確是主成分分析沒錯 而PCA的資料前處理的確是為去除中心軌道,所以執行centering(中心化) 也就是只扣除平均值 不過我所看到的國外paper"幾乎"都一致提到,需要將資料標準化 我也曾單純只想將資料中心化,然後執行PCA 就算該行所有的值都是0,也不會產生分母為0的問題 但作者的操作過程是這樣寫 心想沒道理不能照著做 但做了還真的產生問題 另外..您後面PCA code的部份能多解釋一點嗎 感謝賜教 謝謝 ※ 引述《wudollar (~每天一ㄍ心希望~)》之銘言: : ※ 引述《rauf6620 (亂入)》之銘言: : : 若A為一M*N矩陣 : : 假設為 5 4 1 0 2 0 : : 5 3 0 0 1 0 : : 5 4 2 0 3 0 : : 5 3 1 0 4 0 : : ------------- : : mean : : std : : 執行PCA前,為去除單位,所以皆會將資料先予以標準化(對行執行) : 這裡我有問題~!! : 應該是說:我不知道,或者我不懂... : PCA是所謂的Principal Component Analysis? 是嘛? : 如果不是,請略過我以下所有的鬼話 @@b : PCA 似乎在數學定義上面,沒有需要在處理PCA前需要去除單位, : 或者正規化(normalization)吧? : 僅僅是因為想看變化(anomaly)所以去平均值(de-mean), : 換句話說是看變異數(variance)分佈以及大小吧?(使用SVD 或者 Eigen..) : 所以似乎沒有在之前需要之前就需要正規化處理吧? : 另,如果是真要有正規化處理,那是當妳生成PC(principal component) : 以及Pattern(e.g. eigenvectors),在需要量化強度, : 以及給予PC單位時所做的簡單換算吧? : PC = PC*std(Pattern), Pattern = Pattern/std(Pattern) : Matrix = PC * Pattern; when (PC = Matrix * Pattern) : ------------------------------------------------------------------------------ : 這樣子的話,『我自以為』妳的問題似乎就沒有了,不是嗎? -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 163.17.12.231

11/27 10:03, , 1F
已回信,請查收,另我找出了PCA我這領域的聖經.....
11/27 10:03, 1F

11/27 10:05, , 2F
Preisendorfer & Mobley(1988), Principal Component Ana
11/27 10:05, 2F

11/27 10:06, , 3F
lysis in Meteorology and Oceanography
11/27 10:06, 3F
文章代碼(AID): #1B3Yj1GA (MATLAB)
討論串 (同標題文章)
文章代碼(AID): #1B3Yj1GA (MATLAB)