PCA(主成分分析)是降维中最经典的方法,其推导求解的常用两种方法包括最大方差理论(样本点到超平面的投影都尽可能分开)以及最小平方误差理论(样本点到超平面的距离都足够近),以上两种方法都需要进行严格意义上的数学推导,而本文想从另一个角度——相似矩阵的几何意义——直观理解PCA的原理。
以三维向量空间为例,任何一个向量都可以用一组基向量的某个线性组合表示: v ⃗ = a 1 e 1 + a 2 e 2 + a 3 e 3 = a 1 ′ e 1 ′ + a 2 ′ e 2 ′ + a 3 ′ e 3 ′ \vec{v}=a_{1}e_{1}+a_{2}e_{2}+a_{3}e_{3}=a_{1}^{'}e_{1}^{'}+a_{2}^{'}e_{2}^{'}+a_{3}^{'}e^{'}_{3} v=a1e1+a2e2+a3e3=a1′e1′+a2′e2′+a3′e3′, e 1 , e 2 , e 3 与 e 1 ′ , e 2 ′ , e 3 ′ e_{1},e_{2},e_{3}与e_{1}^{'},e^{'}_{2},e^{'}_{3} e1,e2,e3与e1′,e2′,e3′是三维空间的两组不同基向量,而两组不同基向量间可通过坐标变换实现相互转化:
v ⃗ = ( e 1 ′ , e 2 ′ , e 3 ′ ) ( a 1 ′ a 2 ′ a 3 ′ ) = ( e 1 , e 2 , e 3 ) ( w 11 w 12 w 13 w 21 w 22 w 23 w 31 w 32 w 33 ) ( a 1 ′ a 2 ′ a 3 ′ ) = ( e 1 , e 2 , e 3 ) ( a 1 a 2 a 3 ) \vec{v}=\begin{pmatrix}e_{1}^{'},e^{'}_{2},e^{'}_{3}\end{pmatrix}\begin{pmatrix}a_{1}^{'}\\ a_{2}^{'}\\a_{3}^{'}\end{pmatrix}= \begin{pmatrix}e_{1},e_{2},e_{3}\end{pmatrix} \begin{pmatrix} w_{11}& w_{12} &w_{13} \\ w_{21} & w_{22}&w_{23} \\ w_{31} &w_{32}&w_{33} \end{pmatrix}\begin{pmatrix}a_{1}^{'}\\ a^{'}_{2}\\a^{'}_{3}\end{pmatrix}= \begin{pmatrix}e_{1},e_{2},e_{3}\end{pmatrix}\begin{pmatrix}a_{1}\\ a_{2}\\a_{3}\end{pmatrix} v=(e1′,e2′,e3′)⎝⎛a1′a2′a3′⎠⎞=(e1,e2,e3)⎝⎛w11w21w31w12w22w32w13w23w33⎠⎞⎝⎛a1′a2′a3′⎠⎞=(e1,e2,e3)⎝⎛a1a2a3⎠⎞
e 1 , e 2 , e 3 与 e 1 ′ , e 2 ′ , e 3 ′ e_{1},e_{2},e_{3}与e_{1}^{'},e^{'}_{2},e^{'}_{3} e1,e2,e3与e1′,e2′,e3′之间的坐标变换由 W 3 × 3 = ( w 11 w 12 w 13 w 21 w 22 w 23 w 31 w 32 w 33 ) W_{3×3}= \begin{pmatrix}w_{11}& w_{12} &w_{13} \\ w_{21} & w_{22}&w_{23} \\w_{31} &w_{32}&w_{33} \end{pmatrix} W3×3=⎝⎛w11w21w31w12w22w32w13w23w33⎠⎞表示,为保证每组基向量线性无关, W 3 × 3 W_{3×3} W3×3矩阵必须为可逆矩阵(行列式>0)(坐标变换是一种不改变原线性空间维度的特殊线性变换),因此有 ( e 1 ′ , e 2 ′ , e 3 ′ ) = ( e 1 , e 2 , e 3 ) W 3 × 3 , ( a 1 ′ a 2 ′ a 3 ′ ) = W 3 × 3 − 1 ( a 1 a 2 a 3 ) (e_{1}^{'},e^{'}_{2},e^{'}_{3})=(e_{1},e_{2},e_{3})W_{3×3},\begin{pmatrix}a_{1}^{'}\\ a_{2}^{'}\\a^{'}_{3}\end{pmatrix}=W_{3×3}^{-1}\begin{pmatrix}a_{1}\\ a_{2}\\a_{3}\end{pmatrix} (e1′,e2′,e3′)=(e1,e2,e3)W3×3,⎝⎛a1′a2′a3′⎠⎞=W3×3−1⎝⎛a1a2a3⎠⎞。
线性空间中,相同的向量可由不同基向量的某个线性组合表示,那么相同的线性变换也可由不同基向量下的唯一不同矩阵表示,如对向量 v ⃗ \vec{v} v进行某个线性空间变换 L L L,即 v ⃗ → L ( v ⃗ ) \vec{v}\rightarrow L(\vec{v}) v→L(v):
L ( v ⃗ ) = a 1 L ( e 1 ) + a 2 L ( e 2 ) + a 3 L ( e 3 ) = ( L ( e 1 ) , L ( e 2 ) , L ( e 3 ) ) ( a 1 a 2 a 3 ) = ( e 1 , e 2 , e 3 ) ( l 11 l 12 l 13 l 21 l 22 l 23 l 31 l 32 l 33 ) ( a 1 a 2 a 3 ) = ( e 1 ′ , e 2 ′ , e 3 ′ ) ( l 11 ′ l 12 ′ l 13 ′ l 21 ′ l 22 ′ l 23 ′ l 31 ′ l 32 ′ l 33 ′ ) ( a 1 ′ a 2 ′ a 3 ′ ) = ( e 1 , e 2 , e 3 ) W 3 × 3 ( l 11 ′ l 12 ′ l 13 ′ l 21 ′ l 22 ′ l 23 ′ l 31 ′ l 32 ′ l 33 ′ ) W 3 × 3 − 1 ( a 1 a 2 a 3 ) \begin{aligned} L(\vec{v})&=a_{1}L(e_{1})+a_{2}L(e_{2})+a_{3}L(e_{3})=\begin{pmatrix}L(e_{1}), L(e_{2}),L(e_{3})\end{pmatrix} \begin{pmatrix}a_{1}\\ a_{2}\\a_{3}\end{pmatrix} =\begin{pmatrix}e_{1},e_{2},e_{3}\end{pmatrix} \begin{pmatrix} l_{11}& l_{12} &l_{13} \\ l_{21} & l_{22}&l_{23} \\ l_{31} & l_{32}&l_{33} \end{pmatrix}\begin{pmatrix}a_{1}\\ a_{2}\\a_{3}\end{pmatrix} \\ &=\begin{pmatrix}e_{1}^{'},e^{'}_{2},e^{'}_{3}\end{pmatrix} \begin{pmatrix} l_{11}^{'}& l_{12}^{'} &l_{13}^{'} \\ l_{21} ^{'}& l_{22}^{'}&l_{23}^{'} \\ l_{31}^{'} & l_{32}^{'}&l_{33}^{'} \end{pmatrix}\begin{pmatrix}a_{1}^{'}\\ a_{2}^{'}\\a^{'}_{3}\end{pmatrix}=(e_{1},e_{2},e_{3})W_{3×3}\begin{pmatrix} l_{11}^{'}& l_{12}^{'} &l_{13}^{'} \\ l_{21} ^{'}& l_{22}^{'}&l_{23}^{'} \\ l_{31}^{'} & l_{32}^{'}&l_{33}^{'} \end{pmatrix}W_{3×3}^{-1}\begin{pmatrix}a_{1}\\ a_{2}\\a_{3}\end{pmatrix} \end{aligned} L(v)=a1L(e1)+a2L(e2)+a3L(e3)=(L(e1),L(e2),L(e3))⎝⎛a1a2a3⎠⎞=(e1,e2,e3)⎝⎛l11l21l31l12l22l32l13l23l33⎠⎞⎝⎛a1a2a3⎠⎞=(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⎠⎞
令 L 3 × 3 = ( l 11 l 12 l 13 l 21 l 22 l 23 l 31 l 32 l 33 ) L_{3×3}= \begin{pmatrix}l_{11}& l_{12} &l_{13} \\ l_{21} &l_{22}&l_{23} \\ l_{31} &l_{32}&l_{33} \end{pmatrix} L3×3=⎝⎛l11l21l31l12l22l32l13l23l33⎠⎞, L 3 × 3 ′ = ( l 11 ′ l 12 ′ l 13 ′ l 21 ′ l 22 ′ l 23 ′ l 31 ′ l 32 ′ l 33 ′ ) L^{'}_{3×3}= \begin{pmatrix}l_{11}^{'}& l_{12}^{'} &l_{13}^{'} \\ l_{21}^{'} &l_{22}^{'}&l_{23}^{'} \\ l_{31}^{'} &l_{32}^{'}&l_{33}^{'} \end{pmatrix} L3×3′=⎝⎛l11′l21′l31′l12′l22′l32′l13′l23′l33′⎠⎞, L 3 × 3 与 L 3 × 3 ′ L_{3×3}与L^{'}_{3×3} L3×3与L3×3′分别为相同的线性变换 L L L在不同基底 e 1 , e 2 , e 3 e_{1},e_{2},e_{3} e1,e2,e3与 e 1 ′ , e 2 ′ , e 3 ′ e_{1}^{'},e^{'}_{2},e^{'}_{3} e1′,e2′,e3′的表示矩阵,且满足 L 3 × 3 ′ = W 3 × 3 − 1 L 3 × 3 W 3 × 3 L^{'}_{3×3}=W_{3×3}^{-1}L_{3×3}W_{3×3} L3×3′=W3×3−1L3×3W3×3,我们就说 L 3 × 3 与 L 3 × 3 ′ L_{3×3}与 L^{'}_{3×3} L3×3与L3×3′相似。
可见矩阵的本质是一种线性变换,同一个线性变换在不同坐标基底的表示矩阵是相似矩阵。而在描述同一个线性变换的不同基底中,有一类基底较特殊,用此类基底可将该线性变换的表示矩阵对角化,对角矩阵的几何意义为仅对基向量做缩放,而不改变其方向。
L ( v ⃗ ) = ( e 1 ′ , e 2 ′ , e 3 ′ ) ( λ 1 0 0 0 λ 2 0 0 0 λ 3 ) ( a 1 ′ a 2 ′ a 3 ′ ) = ( λ 1 e 1 , λ 2 e 2 , λ 3 e 3 ) ( a 1 ′ a 2 ′ a 3 ′ ) L(\vec{v})=\begin{pmatrix}e_{1}^{'},e^{'}_{2},e^{'}_{3}\end{pmatrix} \begin{pmatrix} \lambda _{1} & 0&0 \\ 0& \lambda _{2} &0 \\ 0& 0 &\lambda _{3} \end{pmatrix}\begin{pmatrix}a_{1}^{'}\\ a_{2}^{'}\\a^{'}_{3}\end{pmatrix}=(\lambda _{1} e_{1},\lambda _{2} e_{2},\lambda _{3} e_{3})\begin{pmatrix}a_{1}^{'}\\ a_{2}^{'}\\a^{'}_{3}\end{pmatrix} L(v)=(e1′,e2′,e3′)⎝⎛λ1000λ2000λ3⎠⎞⎝⎛a1′a2′a3′⎠⎞=(λ1e1,λ2e2,λ3e3)⎝⎛a1′a2′a3′⎠⎞
那如何求这类特殊基向量以及相应的对角元素呢?根据上述公式 L 3 × 3 ′ = W 3 × 3 − 1 L 3 × 3 W 3 × 3 → W 3 × 3 L 3 × 3 ′ = L 3 × 3 W 3 × 3 L^{'}_{3×3}=W_{3×3}^{-1}L_{3×3}W_{3×3}\rightarrow W_{3×3}L^{'}_{3×3}=L_{3×3}W_{3×3} L3×3′=W3×3−1L3×3W3×3→W3×3L3×3′=L3×3W3×3,这里 L 3 × 3 ′ L^{'}_{3×3} L3×3′是特殊基底下的对角矩阵, L 3 × 3 L_{3×3} L3×3是单位矩阵 I 3 I_{3} I3基底下的非对角矩阵,则有:
W 3 × 3 L 3 × 3 ′ = ( w 11 w 12 w 13 w 21 w 22 w 23 w 31 w 32 w 33 ) ( λ 1 0 0 0 λ 2 0 0 0 λ 3 ) = ( l 11 l 12 l 13 l 21 l 22 l 23 l 31 l 32 l 33 ) ( w 11 w 12 w 13 w 21 w 22 w 23 w 31 w 32 w 33 ) = L 3 × 3 W 3 × 3 W_{3×3}L^{'}_{3×3}= \begin{pmatrix} w_{11}& w_{12} &w_{13} \\ w_{21} & w_{22}&w_{23} \\ w_{31} &w_{32}&w_{33} \end{pmatrix}\begin{pmatrix} \lambda _{1} & 0&0 \\ 0& \lambda _{2} &0 \\ 0& 0 &\lambda _{3} \end{pmatrix}=\begin{pmatrix} l_{11}& l_{12} &l_{13} \\ l_{21} & l_{22}&l_{23} \\ l_{31} & l_{32}&l_{33} \end{pmatrix} \begin{pmatrix} w_{11}& w_{12} &w_{13} \\ w_{21} & w_{22}&w_{23} \\ w_{31} &w_{32}&w_{33} \end{pmatrix}=L_{3×3}W_{3×3} W3×3L3×3′=⎝⎛w11w21w31w12w22w32w13w23w33⎠⎞⎝⎛λ1000λ2000λ3⎠⎞=⎝⎛l11l21l31l12l22l32l13l23l33⎠⎞⎝⎛w11w21w31w12w22w32w13w23w33⎠⎞=L3×3W3×3
令 w j = ( w 1 j w 2 j w 3 j ) T w_{j}=\begin{pmatrix}w_{1j}& w_{2j}& w_{3j}\end{pmatrix}^{T} wj=(w1jw2jw3j)T,可以得到 L 3 × 3 w j = λ j w j L_{3×3}w_{j}=\lambda _{j} w_{j} L3×3wj=λjwj,不难发现 λ j \lambda _{j} λj为矩阵 L 3 × 3 L_{3×3} L3×3的其中一个特征值,非零向量 w j w_{j} wj为 L 3 × 3 L_{3×3} L3×3对应特征值的特征向量。因此特征向量是进行线性变换(以单位矩阵 I 3 I_{3} I3为基底的 L 3 × 3 L_{3×3} L3×3矩阵表示的线性变换)后方向不变的向量,将这类特征向量作为基底,可将该线性变换的表示矩阵对角化,而特征值则为对应特征向量经过线性变换后的缩放比例。通过求解 L 3 × 3 L_{3×3} L3×3矩阵对应的特征值和特征向量,让同样的线性变换通过简洁的对角矩阵的形式表现出来,对实际应用中的数据降维,特征提取都有深刻的意义。
PCA的本质就是通过基底变化尽可能大的保留原始样本的有效信息,去掉噪音,与信号处理领域的信噪比类似,我们认为有效信息具有较大方差,噪声具有较小方差,信噪比越大意味着数据的质量越好。
假设用矩阵 X X X表示样本集(已中心化处理),每一行包含一个不同的样本 α i = ( x i 1 x i 2 x i 3 ) T \alpha_{i}= \begin{pmatrix}x_{i1}&x_{i2}&x_{i3}\end{pmatrix}^{T} αi=(xi1xi2xi3)T,每一列对应于样本的一个特征 β j = ( x 1 j x 2 j x 3 j ) T \beta_{j}=\begin{pmatrix}x_{1j}& x_{2j}& x_{3j}\end{pmatrix}^{T} βj=(x1jx2jx3j)T,那么我们希望某几个列向量的方差尽可能大,即某几个方差较大的特征为有效信息,其余方差较小的特征可当噪声忽略,不同列向量间的协方差尽可能小,即不同特征之间尽可能不相关,信息尽量转移到某几个独立的特征上。
X = ( x 11 x 12 x 13 x 21 x 22 x 23 x 31 x 32 x 33 ) = ( α 1 T α 2 T α 3 T ) = ( β 1 , β 2 , β 3 ) X= \begin{pmatrix} x_{11}& x_{12} &x_{13} \\ x_{21} & x_{22}&x_{23} \\ x_{31} & x_{32}&x_{33} \end{pmatrix}= \begin{pmatrix} \alpha_{1} ^{T}\\ \\ \alpha_{2}^{T} \\ \\ \alpha_{3}^{T}\\ \end{pmatrix}= \begin{pmatrix}\beta_{1},& \beta_{2},& \beta _{3}\end{pmatrix} X=⎝⎛x11x21x31x12x22x32x13x23x33⎠⎞=⎝⎜⎜⎜⎜⎛α1Tα2Tα3T⎠⎟⎟⎟⎟⎞=(β1,β2,β3)
那么如何表示列向量的方差与协方差呢,这里我们自然想到 X X X的协方差矩阵,这里需要注意的是:协方差矩阵计算的是不同特征之间而非不同样本之间的协方差。
C X = 1 m X T X = ( C o v ( β 1 , β 1 ) C o v ( β 1 , β 2 ) C o v ( β 1 , β 3 ) C o v ( β 2 , β 1 ) C o v ( β 2 , β 2 ) C o v ( β 2 , β 3 ) C o v ( β 3 , β 1 ) C o v ( β 3 , β 2 ) C o v ( β 3 , β 3 ) ) C_{X}=\frac{1}{m}X^{T}X= \begin{pmatrix} Cov( \beta_{1}, \beta_{1})& Cov( \beta_{1}, \beta_{2}) &Cov( \beta_{1}, \beta_{3}) \\ Cov( \beta_{2}, \beta_{1})& Cov( \beta_{2}, \beta_{2}) &Cov( \beta_{2}, \beta_{3}) \\ Cov( \beta_{3}, \beta_{1})& Cov( \beta_{3}, \beta_{2}) &Cov( \beta_{3}, \beta_{3}) \end{pmatrix} 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)⎠⎞
理想型数据集的协方差矩阵 C X C_{X} CX应满足非对角线元素 C o v ( β i , β j ) Cov( \beta_{i}, \beta_{j}) Cov(βi,βj)为0(不同列向量间的协方差尽可能小),选取较大的对角线元素 C o v ( β j , β j ) Cov( \beta_{j}, \beta_{j}) Cov(βj,βj)所对应的列向量如 β 1 、 β 2 \beta_{1}、\beta_{2} β1、β2为样本集的有效特征(某几个列向量的方差尽可能大),其他较小的列向量如 β 3 \beta_{3} β3可当作噪声被忽略,从而实现降维。
而实际数据集各特征之间通常存在相关性,有效信息与噪声杂糅在一起,其协方差矩阵的非对角元素并不为0,因此我们可通过改变坐标基底将实际协方差矩阵所对应的线性变换以理想型的对角矩阵形式表示,因为协方差矩阵是对称矩阵,必可正交对角化,可得如下公式:
C X ′ = W − 1 C X W = W T C X W = ( λ 1 0 0 0 λ 2 0 0 0 λ 3 ) C_{X}^{'}=W^{-1}C_{X}W=W^{T}C_{X}W= \begin{pmatrix} \lambda _{1} & 0&0 \\ 0& \lambda _{2} &0 \\ 0& 0 &\lambda _{3} \end{pmatrix} CX′=W−1CXW=WTCXW=⎝⎛λ1000λ2000λ3⎠⎞
由相似矩阵的几何知识可知:
为满足 C X ′ C_{X}^{'} CX′为对角矩阵,需要求出矩阵 C X C_{X} CX的特征值 λ \lambda λ与对应特征向量 w w w,然后我们将特征值从大到小排列,取特征值前2个对应的特征向量 ω 1 , ω 2 ω_{1},ω_{2} ω1,ω2,因为这两个特征向量缩放比例最大,特征的方差也最大,而方差最大的这两个特征已不是对应 C X C_{X} CX的原始数据集特征,而是经过坐标基底变换后对应 C X ′ C^{'}_{X} CX′的新特征。我们可通过坐标变换 α i ′ = ( w 1 T α i w 2 T α i ) \alpha_{i}^{'}=\begin{pmatrix}w_{1} ^{T}\alpha_{i}&w_{2} ^{T}\alpha_{i}\end{pmatrix} αi′=(w1Tαiw2Tαi)得到具有新特征的样本集(可由上述坐标变换公式 ( x i 1 ′ x i 2 ′ x i 3 ′ ) = W 3 × 3 − 1 ( x i 1 x i 2 x i 2 ) = W 3 × 3 T ( x i 1 x i 2 x i 2 ) 推 出 \begin{pmatrix}x_{i1}^{'}\\ x_{i2}^{'}\\x_{i3}^{'}\end{pmatrix}=W_{3×3}^{-1}\begin{pmatrix}x_{i1}\\ x_{i2}\\x_{i2}\end{pmatrix}=W_{3×3}^{T}\begin{pmatrix}x_{i1}\\ x_{i2}\\x_{i2}\end{pmatrix}推出 ⎝⎛xi1′xi2′xi3′⎠⎞=W3×3−1⎝⎛xi1xi2xi2⎠⎞=W3×3T⎝⎛xi1xi2xi2⎠⎞推出), w 1 T α i w_{1} ^{T}\alpha_{i} w1Tαi即为样本的原特征在特征向量方向上的投影,新的特征(投影)方差最大,相当于把原来多个特征进行线性组合从而获得最大的有效信息作为新特征,新的样本集 α i ′ \alpha_{i}^{'} αi′的特征协方差即为对角矩阵 C X ′ C_{X}^{'} CX′的子矩阵,提取了有效信息,抛弃了噪音(特征值较小的特征向量方向上的信息)实现了将3维样本降至2维的作用。