sklearn pca 数据降维结果不一致

  统计/机器学习 数据降维 Python    浏览次数:3794        分享
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个回答 
2

你需要设置random_state,比如

pca = PCA(n_components=200, random_state=999)
SofaSofa数据科学社区DS面试题库 DS面经

sasa   2019-03-06 00:50

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

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

SofaSofa数据科学社区DS面试题库 DS面经

Zealing   2019-03-06 00:45

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


  相关讨论

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

Truncated SVD和PCA有什么区别吗?

用pca对数据集降维时为什么一定要训练集和测试集?

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

主成分分析法(PCA)算是黑盒算法吗?

PCA算法是一种保距算法吗?

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

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

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

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

  随便看看

行数很多的pandas DataFrame如何在jupyter中完整显示?

wide-deep模型里的wide和deep分别是指什么意思?

sklearn训练classifier的时候报错Unknown label type

用一个骰子生成1到7的随机数?

pandas报错: 'DataFrame' object has no attribute 'unique'