[問題] PCA

看板DataScience作者 (光芒今年拿冠軍)時間5年前 (2019/06/06 01:07), 5年前編輯推噓4(403)
留言7則, 6人參與, 5年前最新討論串1/1
問題類別: 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

06/06 01:14, 5年前 , 1F
sklearn的pca有正規化嗎
06/06 01:14, 1F

06/06 01:15, 5年前 , 2F
有沒有正規化 pca結果有差
06/06 01:15, 2F
沒有欸,我是直接把data set丟進去 我試試!

06/06 04:55, 5年前 , 3F
沒什麼問題 差在SVD分解的eigenvector差負號沒關係
06/06 04:55, 3F

06/06 09:59, 5年前 , 4F
推樓上 正負號差沒關係
06/06 09:59, 4F
其實我也覺得沒關係,只是好奇為什麼會跟scikit-learn的結果不一樣 ※ 編輯: TampaBayRays (140.113.207.57 臺灣), 06/06/2019 14:05:50

06/06 23:58, 5年前 , 5F
https://tinyurl.com/y4eevakc for deterministic out
06/06 23:58, 5F
原來是這樣!感謝~

06/07 00:41, 5年前 , 6F
特徵向量方向的問題而已 你的結果是對的
06/07 00:41, 6F
※ 編輯: TampaBayRays (36.229.138.132 臺灣), 06/07/2019 13:34:54

06/07 22:02, 5年前 , 7F
正負號是沒有關係的
06/07 22:02, 7F
文章代碼(AID): #1Sz_RFoy (DataScience)
文章代碼(AID): #1Sz_RFoy (DataScience)