簡體   English   中英

mlab PCA和sklearn PCA之間的區別

[英]Differences between mlab PCA and sklearn PCA

我有一組必須使用PCA分解研究的“二維”數據。 第一步,我嘗試使用matplotlib.mlab庫:

import numpy as np
from matplotlib.mlab import PCA

data = np.loadtxt("Data.txt")
result = PCA(data)
#....

然后,我將“ Data.txt”的散布圖與mlab找到的主要成分(存儲在result.Wt中)進行了比較。 結果如下: mlab嘗試

如您所見,結果不是最佳的。 因此,我嘗試使用sklearn.decomposition庫執行相同的操作:

import numpy as np
from sklearn.decomposition import PCA

data = np.loadtxt("Data.txt")
pca = PCA(n_components=2,whiten=True)
pca.fit(data)

這次的結果要好得多: sklearn嘗試

我真的沒想到這兩個庫之間的結果會有如此大的差異。 那么我的問題是:結果有如此大差異的可能原因是什么?

像往常一樣,對於不可重復的問題( data.txt ):讓我們猜測吧!

  • matplotlibs PCA默認將數據標准化
  • sklearn的PCA不會(您還激活了美白;您是否不想比較這些結果?)

在matplotlib案例中,我的猜測是,您繪制了適合標准數據的PCA軸,但繪制了原始數據(顯然沒有將均值作為正值集中在平均值上)。

所以:

  • 停用matplotlib的標准化
  • 停用sklearn的美白
  • 並比較...

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM