我试图用python学习pca(使用虹膜数据集),但我得到了一些结果,所以我想测试ir R的结果以确保它很好。当我检查结果时,它给了我一个python的镜像图(在y轴上),某些值中的负数字符号(python:[140,1] = 0.1826089,r [141,2] =-0.1826089 [python计数从零开始])。
python代码:
java.lang.AssertionError: Got a list of values ["REGION","REGION","REGION","REGION","REGION","REGION","REGION","REGION","REGION","REGION","REGION","REGION","REGION","REGION","REGION","REGION","REGION","REGION","REGION","REGION"] instead of the expected single value REGION
R代码:
import numpy as np
import matplotlib.pyplot as plt
import sklearn.decomposition as p
data=np.loadtxt("sample_data/iris.txt",delimiter=';',usecols=(0,1,2,3))
pca=p.PCA().fit(data)
pcaData=pca.transform(data)
plt.scatter(pcaData[:,0],pcaData[:,1])
print(pcaData[140,1])
在互联网上进行搜索时,我发现同样的情况。
My R diagram-The R diagram on the internet
Source-The Python diagram on the internet。
我期望是一样的。 是我不太了解的东西吗?
谢谢。
答案 0 :(得分:0)
ScikitLearn使用伪随机方法来确定奇异值分解的近似值。
请参阅https://scikit-learn.org/stable/modules/generated/sklearn.utils.extmath.randomized_svd.html
因此,除非您可以保证方法相同且使用相同的随机种子,否则您将无法获得与主要成分完全相同的值。