首页 > 解决方案 > scikit learn PCA - 转换结果

问题描述

我有一个时间序列的第一个差异,我使用 scikit 应用 PCA 来获得第一台 PC

# data is a timeseries of first differences
pca = PCA(n_components=1)
pca.fit(data)
pc1_trans = pca.transform(data)
pc1_dot = numpy.dot( data, pca.components_.T)
plt.plot( numpy.cumsum( pc1_dot )  )
plt.plot( numpy.cumsum( pc1_trans ) ) 

我认为原始数据和第一个组件之间的点积(投影)的结果会产生与调用 pca.transform 相同的结果,但事实并非如此(结果如下;橙色线是来自变换的数据)。为什么是这样? 在此处输入图像描述

标签: scikit-learnpca

解决方案


在这里找到了答案

scikit PCA 向您展示了对贬义数据的转换,因此这些是等价的:

pc1_trans = pca.transform(data)
pc1_dot = numpy.dot( data - data.mean(), pca.components_.T)

推荐阅读