[問題] 無法將data標準化後執行PCA已回收

看板MATLAB作者 (亂入)時間16年前 (2009/11/26 00:28), 編輯推噓0(000)
留言0則, 0人參與, 最新討論串1/4 (看更多)
若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前,為去除單位,所以皆會將資料先予以標準化(對行執行) 不過小弟有個問題 在上述的例子中 第1,4,5行中的標準差是0 標準化後,matlab會顯示出 warning:divide by 0 也就是分母為0 標準化之後的資料會變成 B= NaN x x NaN x NaN NaN x x NaN x NaN NaN x x NaN x NaN NaN x x NaN x NaN 接下來若執行PCA,就出了問題 也就是執行[Coeff,Score,Latent]=princomp(B); 特徵值,特徵向量,主成分得點皆無法得知 當然無法求得T2及SPE統計量 若將NaN的值由0或其他值(eps等..)來取代,擔心會出問題... 若將有NaN的行刪掉,有可能把重要的變數殺掉 不知道有無大大遇過或處理過相同問題? 謝謝 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 163.17.12.231
文章代碼(AID): #1B3Lj6fB (MATLAB)
文章代碼(AID): #1B3Lj6fB (MATLAB)