【发布时间】:2017-03-28 00:15:06
【问题描述】:
我正在讨论是否可以通过对数据执行 PCA 来节省磁盘空间。假设您有一个协方差矩阵,并且您的数据向量的长度为 1000。将空间减少 50% 的压缩方法是:
- 导出一个矩阵,将协方差矩阵旋转为对角线形式,使得特征值沿对角线排列。
- 删除最小的 500 个对角线元素 - 替换为零
- 使用原始旋转的转置来旋转结果。
我:这不会为向量节省任何空间,因为旋转后所有 1000 个组件中仍然会有非零元素。没有压缩。数据可能已经简化,但那是另一回事。 他:只取结果中的前 500 个元素——这就是你的“压缩”。
我知道我是对的,但很多人在文献中说他们正在使用 PCA 进行压缩 - 这是一个示例:
http://ufldl.stanford.edu/tutorial/unsupervised/PCAWhitening/
我认为本教程大部分是正确的并且是一个很好的描述,但是关于压缩的结论是错误的。但是,如此明显的事情怎么会被那些清楚地处理数据的人所忽视。让我觉得我错了。
谁能帮我理解他们的观点?
【问题讨论】:
-
什么是主成分分析?是主成分分析吗? 要压缩的数据是什么?压缩-解压循环后可以更改数据(允许出现什么错误),还是需要精确的(lossless)方法?
-
PCA 在这种情况下确实指的是主成分分析。想象一下,要压缩的数据是一张照片,由照片的串联行组织为一个长向量。或者实际上是存储为一个长向量的任何数据。当然,压缩可能是有损的,正如人们对 PCA 所期望的那样。最后,一个压缩-解压缩循环可能有一些特定的误差,这些误差将由频谱截止控制。感谢您帮助澄清。
-
abby,“旋转后所有 1000 个组件中的非零元素”可能比以前具有更可预测的分布。当值是可预测的时,它们可以用一些"entropy encoding" method 存储在更小的空间中。此外,还有一些关于 PCA 应用到 Scholar Search 中的论文。
-
如果你的矩阵现在大部分是0,那么存在很多methods to store it efficiently
标签: compression pca