scikit-learn - 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 PCA 向您展示了对贬义数据的转换,因此这些是等价的:
pc1_trans = pca.transform(data)
pc1_dot = numpy.dot( data - data.mean(), pca.components_.T)
推荐阅读
- angular - Angular - 如何将可观察的访问令牌添加到传出的 HTTP 请求?
- javascript - 如何在反应谷歌图表中使用折叠方法
- visual-studio-code - Visual Studio 代码垂直指南
- facebook - Facebook Pixel:在目录中找不到提供的产品参数 ID
- powershell - 在 Where 语句中使用数字范围
- java - 在 Java Eclipse 中使用 Selenium WebDriver 启动 Chrome 时出错 - 线程“main”中出现异常
- c# - 无法为数据模板工具提示设置父数据上下文
- python - Bokeh ResetTool 预期行为
- sql-server - 为什么在使用连接和内部查询时 order by 子句不能按预期工作
- visual-studio - 如何让 msbuild 了解 .csproj 文件取决于另一个 .csproj 构建的 exe 的可用性