scikit 学习 PCA - 转换结果
scikit learn PCA - transform results
我有一个时间序列的一阶差分,我使用 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 PCA 向您显示 de-meaned 数据的转换,因此这些是等效的:
pc1_trans = pca.transform(data)
pc1_dot = numpy.dot( data - data.mean(), pca.components_.T)
我有一个时间序列的一阶差分,我使用 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 PCA 向您显示 de-meaned 数据的转换,因此这些是等效的:
pc1_trans = pca.transform(data)
pc1_dot = numpy.dot( data - data.mean(), pca.components_.T)