1
試圖通過和通過學習PCA,但有趣的是,當我使用numpy和sklearn時,我得到了不同的協方差矩陣結果。numpy和sklearn PCA返回不同的協方差向量
numpy結果匹配此說明文字here,但sklearn結果不同於兩者。
這是爲什麼嗎?
d = pd.read_csv("example.txt", header=None, sep = " ")
print(d)
0 1
0 0.69 0.49
1 -1.31 -1.21
2 0.39 0.99
3 0.09 0.29
4 1.29 1.09
5 0.49 0.79
6 0.19 -0.31
7 -0.81 -0.81
8 -0.31 -0.31
9 -0.71 -1.01
numpy的結果
print(np.cov(d, rowvar = 0))
[[ 0.61655556 0.61544444]
[ 0.61544444 0.71655556]]
sklearn結果
from sklearn.decomposition import PCA
clf = PCA()
clf.fit(d.values)
print(clf.get_covariance())
[[ 0.5549 0.5539]
[ 0.5539 0.6449]]
這應該不會影響協方差。在這個例子中,數據已經居中。 – canyon289