[問題] 無法將data標準化後執行PCA已回收
若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
討論串 (同標題文章)
以下文章回應了本文:
完整討論串 (本文為第 1 之 4 篇):