PCA(Principle Component Analysis ) 和 SVD(Singular Value Decomposition ) 线性代数分析和揭示矩阵特性的两个重要的方法。二者通过矩阵分解的方式得到不同的特征值或奇异值对应的特征向量。 本文以几何的视角入手看待两个方法。
1. PCA(主成分分析).
给定一个数据点集,PCA可以找出这组点集的一组正交基,可以完全表示这些点。在这组正交基中可以存在一个主方向向量,即沿着这个方向数据有着很大的变化。
让我们通过几个例子来看一下这些正交基为什么有用:
图中几种颜色的正交向量是是可以通过PCA发现的。其中 $x^{'}$ 是这些点最好的一个评估方向,即所有的点在这个方向上投影距离平方的和最小。
让我们再从数学的角度看一下PCA
定义d维点集
x1,x2,...,xn∈Rd
, PCA的正交基形成了一个正交坐标系,我们定义坐标系的原点是数据中心:
所有点到m的距离平方和比其他的点都要小:
那么如何定义这些点集的最佳评估的方向呢,不妨设一任意过m直线L的单位方向向量 v ,
通过下图可以直观感受下这个值得大小与点的分布之间的关系。
如果令
yi=x′i−m
,
Y=(y1,y2,...,yn)
,并且
S=YYT
(散度)这里范式部分可以表达成
从中不难看出S实际上是应用在方向上的变换,是常量矩阵,而我们要找到最佳一个方向v,应用S变换以后与原来方向相比,变换最小,即var(L)最大值。
原来我们可以把var(L)表示成以方向v的函数。其中v的取值范围是定义在
Rd
的一个单位球。
这个函数可能存在最大值与最小值。我们如何来研究呢,别担心,我们有下面结论。
定义函数映射
f:{v∈Rd,s.t.∥v∥=1}→R
为
f(v)=(Sv)⋅v
,其中S是dxd的实对称矩阵,那么该函数的极值在特征向量上取到。
而且这个值可以算出来:
所以每个特征向量对应的方差恰就是相应的特征值。那么既然极值在特征向量上取到,那么我们可以按照特征值的大小对特征向量进行排序,既可以找到使得var(L)的最大和最小值。 简单来说就是最大的特征值对应在其特征向量方向上的投影方差最大,最小的特征值对应在其特征向量方向上的投影方差最小。
由于S是实对称矩阵,所以得到的特征值和特征向量是两两正交的。
到这里应该明白PCA究竟做了一件什么事情了。 再废话一句, PCA实际上是找出了点集所在空间的一组正交基,而且所有点在这些方向上的投影平方和的极值恰好在相应正交基方向上取到, 并且, 这个平方和的在相应方向上的大小恰好是该基对应的特征向量。
让我们来总结一下PCA,中文名主成分分析的主要步骤:
1)计算所有数据点的重心 m=1n∑ni=1xi .
2)将数据的坐标原点移到m , yi=xi−m,i=1,2...,n .
3)构造数据点的散度矩阵 S=YYT , Y所有列都是 yi .
4)矩阵做谱分解 S=VΛVT .
5)将特征向量按照特征值降序排列 : λ1≥λ2≥...≥λd .
6)得到的 v1,...,vd 即主成分,重要程度降序排列。
试想一下,如果特征值大小基本相同会是什么样子。如果有一个特征值特别大又会是什么情况呢?
如果特征值基本相同的话,那么可能不存在一个主方向, 使得散度矩阵应用在该方向上变换 角度很大,换句话说,所有点在各个特征向量方向上的投影分布基本一致。另外如果存在一个很大特征值,其对应特征向量方向可以很好的表示点的分布特征。两种情况分别对应下图:
2 SVD(奇异值分解).
与主成分分析不同之处在于奇异值分解对矩阵没有特殊要求。
奇异值分解可以定义为:
A∈Rmxn
, 则存在正交矩阵
U∈Rmxn
和
V∈Rmxn
使得
即,
或者写成向量的表达形式
其中 r 是非零特征值的数量,注意非零特征值得数量等于矩阵的秩。
关于奇异值分解怎么理解,有一篇文章可以看一下,不再重述:
http://www.ams.org/samplings/feature-column/fcarc-svd
关于二者其应用后续会更新补充
图片和内容参考:
book: A Simpler of Useful Mathematical Tools for Applied Geometry -Daniel Cohen-Or ,Chen Greif ,Tao Ju , etc.
Web: http://www.ams.org/samplings/feature-column/fcarc-svd