看板 DataScience 關於我們 聯絡資訊
問題類別: ML 將MINST data set PCA降維 使用工具: python numpy scikit-learn 問題內容: 想請問各位大大,如果實做完PCA之後, 用scikit-learn比對是否正確,結果發現座標都差一個負號, 請問可能是什麼原因呢? 這個是我做出的結果 https://imgur.com/KRY3oWp 這個是scikit-learn的結果 https://imgur.com/49I5gzF 以下是我的程式碼 data是5000x784維的矩陣(5000個784pixel的數字) mean=ml.repmat(np.mean(self.data,axis=0),self.data.shape[0],1) X=self.data-mean U,_,_=np.linalg.svd(np.transpose(X)) self.projection=np.dot(self.data,U[:,:2]) 簡單來說就是把data的平均平移到0,然後對他做SVD, 取出最大的兩個eigenvector後將資料投影上去, 下面是我scikit-learn的程式碼 pca=PCA(n_components=2) self.projection=pca.fit_transform(self.data) 請問問題可能出在哪呢? 感謝~ -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 218.161.71.119 (臺灣) ※ 文章網址: https://www.ptt.cc/bbs/DataScience/M.1559754447.A.CBC.html
ice80712: sklearn的pca有正規化嗎 06/06 01:14
ice80712: 有沒有正規化 pca結果有差 06/06 01:15
沒有欸,我是直接把data set丟進去 我試試!
krusnoopy: 沒什麼問題 差在SVD分解的eigenvector差負號沒關係 06/06 04:55
QingTing: 推樓上 正負號差沒關係 06/06 09:59
其實我也覺得沒關係,只是好奇為什麼會跟scikit-learn的結果不一樣 ※ 編輯: TampaBayRays (140.113.207.57 臺灣), 06/06/2019 14:05:50
jigfopsda: https://tinyurl.com/y4eevakc for deterministic out 06/06 23:58
原來是這樣!感謝~
zxp9505007: 特徵向量方向的問題而已 你的結果是對的 06/07 00:41
※ 編輯: TampaBayRays (36.229.138.132 臺灣), 06/07/2019 13:34:54
nickchen0304: 正負號是沒有關係的 06/07 22:02