PCA的几何意义是找出一个新坐标系,在这个新坐标系下第一个维度是变化是最大的,最后一个维度变化是最小的.
在常用的降维用法中,最后几个维度可以删掉,因为他们没什么变化,在理想的情况下他们都是一个常数,对决策完全不提供有用的信息
衡量变换方法是方差,所以主成分分析在协方差矩阵中的体现就是让协方差矩阵对角元素即方差最大化.
从矩阵乘法理解方式的2.1可以知道,换坐标系其实就是乘以一个正交矩阵
所以上面问题用矩阵的语言可以这么描述,给一个正交矩阵Q,它把数据A(数据按列堆叠成的矩阵)转换到新坐标系Q下,新数据是QA,它的协方差矩阵中方差项最大化
假定数据已经中心化过,A的协方差矩阵C是
A
A
T
/
(
n
−
1
)
AA^T/(n-1)
AAT/(n−1),(ps:n-1是无偏估计,换成n也差不多)
QA的协方差矩阵
C
Q
C^Q
CQ就是
(
Q
A
)
(
Q
A
)
T
/
(
n
−
1
)
=
Q
A
A
T
Q
T
/
n
−
1
(QA)(QA)^T/(n-1)=QAA^TQ^T/n-1
(QA)(QA)T/(n−1)=QAATQT/n−1
我们牢记方差项最大化,首先先找第一个维度,让
C
11
Q
C^Q_{11}
C11Q最大.
那么协方差矩阵第一行和第一列必然是长这样的
(
x
,
0
,
0
,
.
.
.
)
(x,0,0,...)
(x,0,0,...)
因为换坐标系也可以理解成旋转,它不会改变长度.
(
x
,
0
,
0
,
.
.
.
)
(x,0,0,...)
(x,0,0,...)的模长是
x
2
x^2
x2,第一列如果存在其他非0元素,那么第一个元素必然要比
x
x
x小,但凡不小模长都会比
x
2
x^2
x2大,而不是相等
所以我们有结论了,要使得第一个维度的方差 C 11 Q C^Q_{11} C11Q最大.第一行和第一列必然是长这样的 ( x , 0 , 0 , . . . ) (x,0,0,...) (x,0,0,...)
接下来确定第一维度后,就可以确定剩下的了.因为第一行和第一列已知,现在可以把协方差矩阵第一行和第一列去掉,开始让新的 C 11 Q C^Q_{11} C11Q最大.毫无疑问,他还是长 ( x , 0 , 0 , . . . ) (x,0,0,...) (x,0,0,...)这样
经过反复确定,我们现在知道了,新的协方差矩阵必然是对角矩阵,这样才能让方差项最大化
那么问题就变成让 Q A A T Q T / n − 1 QAA^TQ^T/n-1 QAATQT/n−1变成对角矩阵,我们可以简单的把分母丢了,因为常数不影响它是不是对角矩阵
A
A
T
AA^T
AAT是对称矩阵,他可以对角矩阵可以分解成
Q
Λ
Q
T
Q\Lambda Q^T
QΛQT的形式,为了区分两个正交矩阵,这里的正交矩阵就用
Z
Z
Z表示,即
A
A
T
=
Z
Λ
Z
T
AA^T=Z\Lambda Z^T
AAT=ZΛZT
所以
Q
A
A
T
Q
T
=
Q
Z
Λ
Z
T
Q
T
QAA^TQ^T=QZ\Lambda Z^TQ^T
QAATQT=QZΛZTQT,很显然当
Q
=
Z
T
Q=Z^T
Q=ZT时,两边都可以消掉.当然别忘了老知识(正交矩阵的逆矩阵就是转置)
所以 Z T Z^T ZT就是那个能满足要求的新坐标系,它是协方差矩阵分解出来的,是协方差矩阵特征向量的堆叠