sklearn pca 数据降维结果不一致

  统计/机器学习 数据降维 Python    浏览次数:146        分享
0

各位好,刚刚接触sklearn, 在使用pca对数据进行降维过程中遇到了一个问题。

a = np.random.rand(1000,1000)
pca = PCA(n_components= 200)    


a_1 = pca.fit_transform(a)
a_2 = pca.fit_transform(a)
a_1[0][0] = -1.04953966
a_2[0][0] = -1.06709133

我做了两边,发现两个结果矩阵的数值不一样,希望大家能给我解答一下。

 

wuha1995   2019-03-05 22:45



   2个回答 
1

查sklearn手册,数据大于500x500,svd solver自动选randomized,得到随机的近似解。你可以选solver,或者用小点的数据。

SofaSofa数据科学社区 DS面经 问答 实战

Zealing   2019-03-06 00:45

好的,谢谢你,我去看一下手册。 - wuha1995   2019-03-06 11:45
1

你需要设置random_state,比如

pca = PCA(n_components=200, random_state=999)
SofaSofa数据科学社区 DS面经 问答 实战

sasa   2019-03-06 00:50

好的,谢谢你。 - wuha1995   2019-03-06 11:45


  相关主题

sklearn.decomposition.PCA方法中fit, fit_transform, transform应该怎么用   1回答

PCA降维之前为什么要先标准化?   2回答

除了PCA,还有什么降维的方法?   11回答

PCA需要正态性作为提前假设吗?   0回答

PCA与非负矩阵分解(NMF)的异同?   0回答

Truncated SVD和PCA有什么区别吗?   1回答

利用PCA降维,降到几维比较合适?   1回答

为什么PCA被称作非监督式学习?   2回答

PCA会降低分类器的精度吗?   3回答

PCA降维中的特征值和特征向量   2回答

PCA的目标函数   1回答

PCA和SVD是一回事吗?   1回答



回答问题时需要注意什么?

我们谢绝在回答前讲“生动”的故事。

我们谢绝“这么简单,你自己想”、“书上有的,你认真看”这类的回答;如果你认为对方的提问方式或者内容不妥,你可以直接忽略该问题,不用进行任何作答,甚至可以对该问题投反对票。

我们谢绝答非所问。

我们谢绝自己不会、硬要回答。

我们感激每一个用户在编写答案时的努力与付出!