作者TampaBayRays (光芒今年拿冠军)
看板DataScience
标题[问题] PCA
时间Thu Jun 6 01:07:24 2019
问题类别: 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://webptt.com/cn.aspx?n=bbs/DataScience/M.1559754447.A.CBC.html
1F:→ ice80712: sklearn的pca有正规化吗 06/06 01:14
2F:→ ice80712: 有没有正规化 pca结果有差 06/06 01:15
没有欸,我是直接把data set丢进去
我试试!
3F:推 krusnoopy: 没什麽问题 差在SVD分解的eigenvector差负号没关系 06/06 04:55
4F:→ QingTing: 推楼上 正负号差没关系 06/06 09:59
其实我也觉得没关系,只是好奇为什麽会跟scikit-learn的结果不一样
※ 编辑: TampaBayRays (140.113.207.57 台湾), 06/06/2019 14:05:50
原来是这样!感谢~
6F:推 zxp9505007: 特徵向量方向的问题而已 你的结果是对的 06/07 00:41
※ 编辑: TampaBayRays (36.229.138.132 台湾), 06/07/2019 13:34:54
7F:推 nickchen0304: 正负号是没有关系的 06/07 22:02