关于PCA和SVD的认识
我想如果线性代数中向量空间的基底、坐标、基变换与坐标变换的内容理解的比较成熟的话,那么对理解PCA和SVD的理解将是水到渠成的事。
一.数学基础
基底:
若α1,α2,...,αn为向量空间Rn的一线性无关的向量组,且Rn中任一向量均可由α1,α2,...,αn线性表示,则称α1,α2,...,αn 为向量空间Rn的一个基底。
补充:
1.基底的特殊情况是 α1,α2,...,αn 相互正交而且都是单位向量,最最特殊的情况是单位矩阵E。
2.基底包含的向量个数=Rn 向量空间维数 <=向量维数。
坐标:
设α1,α2,...,αn 为向量空间Rn的一组基,对任意α属于Rn,存在唯一一组数,使
α=x1α1+x2α2+...+xnαn=[α1,α2,...,αn]X
则X=(x1,x2,...,xn)是向量α在基α1,α2,...,αn 上的坐标。
补充:
1.基底与坐标的线性组合就是坐标表示的向量。
基变换与坐标变换
若α1,α2,...,αn 和β1, β2,...,βn 为向量空间Rn 中的两组基,
则:
[β1, β2,...,βn]=[α1,α2,...,αn ]P
或
[α1,α2,...,αn ]=[β1, β2,...,βn]P-1
称为基变换公式.其中可逆矩阵P称为由基α1,α2,...,αn 到基 β1, β2,...,βn 的过渡矩阵。若向量α在基α1,α2,...,αn 和基 β1, β2,...,βn 上的坐标分别为X和Y,
即:
α=[α1,α2,...,αn]X =[β1, β2,...,βn]Y=[α1,α2,...,αn ]PY,
则:
X=PY
或
Y=P-1 X
称为坐标转换公式。
补充:
1.可逆矩阵P 的特殊情况为正交矩阵,正交转换矩阵的特性是可以保持原向量之间的相对位置。
2.单就坐标而言,X是Y在P行向量上的投影。
3.当α1,α2,...,αn 是单位矩阵E,这时:
α=[α1,α2,...,αn]X=EX=X
[β1, β2,...,βn]=[α1,α2,...,αn ]P=E*P=P
α=[β1, β2,...,βn]Y=PY
而P是正交矩阵时,这就是PCA和SVD的应用环境。
二.PCA和SVD的应用
以PCA为例,
对以列向量为样本的矩阵A(假设已经中心化),以AA’ 的特征向量矩阵 P 为过渡矩阵,这个P既是转换矩阵、投影矩阵,又是基矩阵,列向量为基向量。P’*A即对A的转换(坐标转换,A就是坐标矩阵),这也是A的列向量向P’的行向量,即P的列向量的投影。结果就得到转换后的坐标。
(若是以行向量为样本的矩阵A(假设已经中心化),以A’A 的特征向量矩阵 P 为过渡矩阵,这个P既是转换矩阵、投影矩阵,又是基矩阵,列向量为基向量。A*P即对A的转换(坐标转换,A就是坐标矩阵),这也是A的行向量向P的列向量的投影。)
由于转换后的向量坐标方差降序(而且相邻维度的协方差为零),所以末尾维度上的方差趋近零,所以所有样本向量末尾维度上的坐标趋近均值且波动较小。而中心化的坐标均值为零,所以末尾维度上的坐标趋近于零。
有一中的知识,样本向量
α=x1α1+x2α2+...+xnαn=[α1,α2,...,αn]X
由于所有αi 都是单位向量,所以模都为1;所以坐标为零的项可以忽略。这样就是去掉了冗余,实现了压缩存储,和近似还原(失真还原)。
我喜欢程序员,他们单纯、固执、容易体会到成就感;面对困难,能够不休不眠;面对压力,能够迎接挑战。他们也会感到困惑与傍徨,但每个程序员的心中都有一个比尔盖茨或是乔布斯的梦想,用智慧把属于自己的事业开创。其实我是一个程序员[=.=]