PCA(主成分分析)是降维中最经典的方法,其推导求解的常用两种方法包括最大方差理论(样本点到超平面的投影都尽可能分开)以及最小平方误差理论(样本点到超平面的距离都足够近),以上两种方法都需要进行严格意义上的数学推导,而本文想从另一个角度——相似矩阵的几何意义——直观理解PCA的原理。
1. 相似矩阵的几何意义
以三维向量空间为例,任何一个向量都可以用一组基向量的某个线性组合表示:v=a1e1+a2e2+a3e3=a1′e1′+a2′e2′+a3′e3′, e1,e2,e3与e1′,e2′,e3′是三维空间的两组不同基向量,而两组不同基向量间可通过坐标变换实现相互转化:
v=(e1′,e2′,e3′)⎝⎛a1′a2′a3′⎠⎞=(e1,e2,e3)⎝⎛w11=w21w31w12w22w32w13w23w33⎠⎞⎝⎛a1′a2′a3′⎠⎞=(e1,e2,e3)⎝⎛a1a2a3⎠⎞
e1,e2,e3与e1′,e2′,e3′之间的坐标变换由W3×3=⎝⎛w11w21w31w12w22w32w13w23w33⎠⎞表示,为保证每组基向量线性无关,W矩阵必须为可逆矩阵(行列式>0),因此有(e1′,e2′,e3′)=(e1,e2,e3)W3×3,⎝⎛a1′a2′a3′⎠⎞=W3×3−1⎝⎛a1a2a3⎠⎞。
线性空间中,相同的向量可由不同基向量的某个线性组合表示,那么相同的线性变换也可由不同基向量下的唯一不同矩阵表示,如对向量v进行某个线性空间变换L,即v→L(v):
L(v)=a1L(e1)+a2L(e2)+a3L(e3)=(L(e1),L(e2),L(e3))⎝⎛a1a2a3⎠⎞=(e1,e2,e3)⎝⎛l11l21l31l12l22l32l13l23l33⎠⎞⎝⎛a1a2a3⎠⎞
L(v)=(e1′,e2′,e3′)⎝⎛l11′l21′l31′l12′l22′l32′l13′l23′l33′⎠⎞⎝⎛a1′a2′a3′⎠⎞=(e1,e2,e3)W3×3⎝⎛l11′l21′l31′l12′l22′l32′l13′l23′l33′⎠⎞W3×3−1⎝⎛a1a2a3⎠⎞
令L3×3=⎝⎛l11l21l31l12l22l32l13l23l33⎠⎞,L3×3′=⎝⎛l11′l21′l31′l12′l22′l32′l13′l23′l33′⎠⎞,L3×3与L3×3′分别为相同的线性变换L在不同基底e1,e2,e3与e1′,e2′,e3′的表示矩阵,且满足L3×3′=W3×3−1L3×3W3×3,我们就说L3×3与L3×3′相似。
可见矩阵的本质是一种线性变换,同一个线性变换在不同坐标基底的表示矩阵是相似矩阵。而在描述同一个线性变换的不同基底中,有一类基底较特殊,用此类基底可将该线性变换的表示矩阵对角化,对角矩阵的几何意义为仅对基向量做缩放,而不改变其方向。
L(v)=(e1′,e2′,e3′)⎝⎛λ1000λ2000λ3⎠⎞⎝⎛a1′a2′a3′⎠⎞=(λ1e1,λ2e2,λ3e3)⎝⎛a1′a2′a3′⎠⎞
那如何求这类特殊基向量以及相应的对角元素呢?根据上述公式L3×3′=M3×3−1L3×3M3×3→M3×3L3×3′=L3×3M3×3,这里L3×3′是特殊基底下的对角矩阵,L3×3是单位矩阵I3基底下的非对角矩阵,则有:
M3×3L3×3′=⎝⎛w11w21w31w12w22w32w13w23w33⎠⎞⎝⎛λ1000λ2000λ3⎠⎞=⎝⎛l11l21l31l12l22l32l13l23l33⎠⎞⎝⎛w11w21w31w12w22w32w13w23w33⎠⎞=L3×3M3×3
令wj=(w1jw2jw3j)T,可以得到L3×3wj=λjwj,不难发现λj为矩阵L3×3的其中一个特征值,非零向量wj为L3×3对应特征值的特征向量。因此特征向量是进行线性变换(以单位矩阵I3为基底的L3×3矩阵表示的线性变换)后方向不变的向量,将这类特征向量作为基底,可将该线性变换的表示矩阵对角化,而特征值则为对应特征向量经过线性变换后的缩放比例。通过求解L3×3矩阵对应的特征值和特征向量,让同样的线性变换通过简洁的对角矩阵的形式表现出来,对实际应用中的数据降维,特征提取都有深刻的意义。
2. 直观理解PCA的基底选取
PCA的本质就是通过基底变化尽可能大的保留原始样本的有效信息,去掉噪音,与信号处理领域的信噪比类似,我们认为有效信息具有较大方差,噪声具有较小方差,信噪比越大意味着数据的质量越好。
假设用矩阵X表示样本集(已中心化处理),每一行包含一个不同的样本αiT=(xi1xi2xi3),每一列对应于样本的一个特征βj=(x1jx2jx3j)T,那么我们希望某几个列向量的方差尽可能大,即某几个方差较大的特征为有效信息,其余方差较小的特征可当噪声忽略,不同列向量间的协方差尽可能小,即不同特征之间尽可能不相关,信息尽量转移到某几个独立的特征上。
X=⎝⎛x11x21x31x12x22x32x13x23x33⎠⎞=⎝⎜⎜⎜⎜⎛α1Tα2Tα3T⎠⎟⎟⎟⎟⎞=(β1,β2,β3)
那么如何表示列向量的方差与协方差呢,这里我们自然想到X的协方差矩阵,这里需要注意的是:协方差矩阵计算的是不同特征之间而非不同样本之间的协方差。
CX=m1XTX=⎝⎛Cov(β1,β1)Cov(β2,β1)Cov(β3,β1)Cov(β1,β2)Cov(β2,β2)Cov(β3,β2)Cov(β1,β3)Cov(β2,β3)Cov(β3,β3)⎠⎞
理想型的协方差矩阵CX应满足非对角线元素Cov(βi,βj)为0(不同列向量间的协方差尽可能小),选取较大的对角线元素Cov(βj,βj)所对应的列向量如β1、β2为样本集的有效特征(某几个列向量的方差尽可能大),其他较小的列向量如β3可当作噪声被忽略,从而实现降维。
而实际数据集各特征之间通常存在相关性,有效信息与噪声杂糅在一起,其协方差矩阵的非对角元素并不为0,因此我们需要通过改变坐标基底将实际数据集的协方差矩阵转化为理想型的对角矩阵。
CX′=W−1CXW=⎝⎛λ1000λ2000λ3⎠⎞
由相似矩阵的几何知识可知:
-
CX是线性变换L在基底(e1,e2,e3)下表示的矩阵,这里的基底为单位矩阵I3;
-
CX′是相同的线性变换L在基底(w1,w2,w3)下表示的矩阵;
-
W是从(e1,e2,e3)到(w1,w2,w3)的线性变换 在(e1,e2,e3)坐标系下表示的矩阵。
为满足CX′为对角矩阵,需要求出以单位矩阵为基底的矩阵CX(线性变换L)的特征值λ与对应特征向量w,然后我们将特征值从大到小排列,取特征值前2个对应的特征向量ω1,ω2,因为经过线性变换,这两个特征向量方向上的缩放比例最大,特征数据的方差最大,通过映射αi′T=(w1Tαiw2Tαi)将3维样本映射到2维,从而实现降维。