mlab PCA 和 sklearn PCA 的区别
Posted
技术标签:
【中文标题】mlab PCA 和 sklearn PCA 的区别【英文标题】:Differences between mlab PCA and sklearn PCA 【发布时间】:2017-07-19 18:03:45 【问题描述】:我有一组“二维”数据,我必须使用 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 attempt
如您所见,结果不是最佳的。因此,我尝试使用 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 attempt
我真的没想到这两个库之间的结果会有如此大的差异。那么我的问题是:我的结果差异如此之大的可能原因是什么?
【问题讨论】:
【参考方案1】:对于不可重现的问题 (data.txt
):让我们猜猜看!
我的猜测是,在 matplotlib 案例中,您绘制了适合标准化数据的 PCA 轴,但确实绘制了原始数据(显然没有以平均值为中心,仅作为轴上的正值)。
所以:
停用 matplotlib 的标准化 停用 sklearn 的美白功能 然后比较...【讨论】:
以上是关于mlab PCA 和 sklearn PCA 的区别的主要内容,如果未能解决你的问题,请参考以下文章