运行算法PCA(主成分分析)后到底发生了什么?

时间:2015-01-05 12:58:12

标签: c++ algorithm matrix pca

此时我正在处理一个图像处理项目。但我对PCA有一个概念性问题。

将PCA应用于图像矩阵后,矩阵究竟发生了什么?

我不理解阅读有关此主题的文献。

给定M×N矩阵,结果是矩阵M'×N',并且其中M'成正比

2 个答案:

答案 0 :(得分:1)

我不是PCA的专家,但我会尝试解释我的理解。

将PCA应用于图像矩阵后,您将获得该矩阵的特征向量,该矩阵表示矩阵的数不变轴。这些矢量都是彼此正交的。

通过测量原始数据在矩阵中沿着这些向量的分散程度,您可以知道它们是如何分布的。这可能很有用,例如,如果您希望根据数据沿这些"轴"分布的方式执行模式分类。

虽然不准确,但您可以想象PCA可以帮助您绘制"轴"沿着你的矩阵中存在的数据blob,新的"起源"轴的数据是数据的中心。

最好的部分是数据沿第一个特征向量分布最多,其次是第二个特征向量,依此类推。

我希望我没有把你弄糊涂。

除了stackoverflow之外,还有许多关于PCA的良好参考。 这里有一些例子: https://www.quora.com/What-is-an-intuitive-explanation-for-PCA http://www.quora.com/How-to-explain-PCA-in-laymans-terms

同样,我不是专家,也欢迎其他人纠正/教育rwvaldivia和我。

答案 1 :(得分:1)

PCA的概念与线性代数密切相关,线性代数是矩阵所属的数学领域。查看矩阵的常用方法是作为一组矢量,M×N矩阵仅是N维空间中的M个矢量。

现在线性代数的一般概念是基矢量的选择非常随意。如果选择其他基础,则可以通过将矩阵乘以新基础中表示的旧基础(NxN维矩阵本身)来转换矩阵。

PCA是一种找到任意的基础的方法,但是特定于矩阵。特别是,它按照它们在向量集中出现的量来对基本向量进行排序。如果所有向量大致指向同一方向,则该方向将是第一个基向向量。如果它们都大致在同一平面上,那么该平面的主要基础向量将是你的前两个向量。但请记住:你通常会有一个完整的MxN基础(除非你的矩阵是退化的);由您来决定有多少组件是主体。

现在,这是一个真正的问题:究竟什么是“图像矩阵”?您通常无法将1024 x 768图像视为768维空间中的1024个向量集。当然,你可以执行PCA操作,你将得到一个1024x768的结果矩阵,但这甚至意味着什么?它们是输入矩阵的基础向量,但是输出没有完全相同的图像,因为您的输入不是一组向量。