各位好,刚刚接触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
我做了两边,发现两个结果矩阵的数值不一样,希望大家能给我解答一下。
2个回答
你需要设置random_state,比如
pca = PCA(n_components=200, random_state=999)
SofaSofa数据科学社区DS面试题库 DS面经
好的,谢谢你。
-
wuha1995
2019-03-06 11:45
查sklearn手册,数据大于500x500,svd solver自动选randomized,得到随机的近似解。你可以选solver,或者用小点的数据。
SofaSofa数据科学社区DS面试题库 DS面经
好的,谢谢你,我去看一下手册。
-
wuha1995
2019-03-06 11:45