【发布时间】:2014-04-03 07:37:45
【问题描述】:
我正在使用sklearn's PCA 对大量图像进行降维处理。安装 PCA 后,我想看看组件是什么样子。
可以通过查看components_ 属性来做到这一点。没有意识到这是可用的,我做了其他事情:
each_component = np.eye(total_components)
component_im_array = pca.inverse_transform(each_component)
for i in range(num_components):
component_im = component_im_array[i, :].reshape(height, width)
# do something with component_im
换句话说,我在 PCA 空间中创建了一个图像,其中除了 1 之外的所有特征都设置为 0。通过对它们进行逆变换,我应该得到原始空间中的图像,一旦变换,就可以单独用那个 PCA 组件。
下图显示了结果。左边是使用我的方法计算的分量。右边直接是pca.components_[i]。此外,使用我的方法,大多数图像非常相似(但它们不同),而通过访问components_,图像与我预期的非常不同
我的方法是否存在概念问题?显然来自pca.components_[i] 的组件比我得到的组件正确(或至少更正确)。谢谢!
【问题讨论】:
标签: python scikit-learn pca