我试着用python学习pca(使用虹膜数据集),我得到了一些结果,所以我想测试一下结果,以确保它是从零开始的。我检查了结果,它给了我一个python的镜像图(在y轴上),以及一些值中的负号(python: 140,1=0.1826089,r141,2=-0.1826089python计数为零)。
python代码:
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 python diagram
R代码:
data=read.csv("C:\\Users\\George\\Desktop\\iris.csv",sep=";",colClasses=c(NA, NA, NA,NA,"NULL"));data=data[-151,]
pca=prcomp(data)
plot(pca$x[,1],pca$x[,2])
print(pca$x[141,2])My R diagram
在互联网上搜索,我发现同样的事情发生了。
The R diagram on the internet-Source
The Python diagram on the internet-Source。
我原以为会是一样的。是不是有什么我不太明白的地方?
谢谢。
发布于 2019-05-22 17:31:39
ScikitLearn使用伪随机化方法来确定奇异值分解的近似值。
请参阅https://scikit-learn.org/stable/modules/generated/sklearn.utils.extmath.randomized_svd.html
因此,除非您能保证这些方法是相同的,并且使用相同的随机种子,否则您将无法获得主成分的完全相同的值。
https://stackoverflow.com/questions/56253444
复制相似问题