如何理解pca和svd的关系?

主成分分析和奇异值分解进行降维有何共同点?

矩阵的奇异值分解

当矩阵不是方阵,无法为其定义特征值与特征向量,可以用一个相似的概念来代替:奇异值。

通常用一种叫奇异值分解的算法来求取任意矩阵的奇异值:

抽象的概念要用具体的方式理解,来看几张图:

上图中的红色区域是一个以原点为中心的单位圆。圆当中的任意一点可以用向量 x 标示,且 x 满足:

给定一个 2×2 的方阵:

 

利用 MATLAB 对 A 做奇异值分解:

即:

 

所以:

先看 V' 对 x 做了什么:

 

V' 使 x 旋转了一个角度。

 

再看 SV' 对 x 做了什么:

 

S 在 V'x 的基础上,在两个主方向进行了伸缩变换。

最后看 USV' 对 x 做了什么:

U 在 SV'x 的基础上,进行了旋转变换。

至此,奇异值分解的几何意义可谓一目了然:

A 是一个线性变换,把 A 分解成 USV',S 给出了变换后椭圆长短轴的长度, U 和 V' 一起确定了变换后的方向,所以 U、S、V' 包含了这个线性变换的全部信息。S 矩阵的对角线元素称为 A 的奇异值,与特征值一样,大的奇异值对应长轴,小的奇异值对应短轴,大的奇异值包含更多信息。

当矩阵是对称方阵时,其特征值与奇异值相等。

网上有一个很经典的案例来说明 SVD 的应用:

有一张 25×15 的图片:

 

把它用矩阵表示:

这个矩阵的秩等于 3。即矩阵只有 3 种线性无关的列,其他的列都是冗余的:

对 M 做奇异值分解,得到 3 个不为零的奇异值:

它们分别对应着 3 个线性无关的列。

另一种更一般的情况,处理一张有噪声的图片

它的奇异值为:

 

可以想象在15维空间中有一个超椭球体,它有15个轴,其中有3个轴是主要的轴(对应着3个最大的奇异值),有这3个轴就可以大致勾勒出超椭球体的形状,因为它们包含了大部分信息。

如果 S 中的对角线元素从大到小排列,我们就只保留 S 左上角的 3×3 的子矩阵,并相应保留 U 和 V 的前 3 列,简化后的 U、S、V 依然保留了 M 的大部分信息:

 

主成分分析

案例1

假如有 m 条1维数据,由于混入了噪音,变成了2维。

在坐标系中把他们绘制出来:

主成分分析(PCA)可以用来排除这些噪音,把原来的维度提取出来。

首先将数据归一化,并将其所包含的信息用 协方差矩阵(协方差矩阵表示不同维度之间的相关关系,这是一个对称矩阵)来表示:

Σ 有2个奇异值,例如:

显然前者包含了大部分信息,对应的矩阵 U 的第一列就是主成分的方向:

 

于是就通过降维对数据实现了去噪。

在更一般的情况下,假设有 m 条 n 维的数据,对协方差矩阵进行奇异值分解得到 n 个从大到小排列的奇异值:

如果希望信息利用率在99%以上,可利用如下不等式来确定主成分的维度 p:

 

参见以下链接文章.

https://my.oschina.net/findbill/blog/535044

posted @ 2018-08-20 23:17  机器人小z  阅读(...)  评论(...编辑  收藏