奇异值分解(《统计学习方法》)

奇异值分解的定义与性质

定义与定理

矩阵的奇异值分解是指,将一个非零的m×nm \times n实矩阵A,ARm×nA, A \in \mathbf{R}^{m \times n},表示为以下三个实矩阵乘积形式的运算,即进行矩阵的因子分解:

A=UΣVTA=U \Sigma V^{\mathrm{T}}

其中UUmm阶正交矩阵(orthogonal matrix),VVnn阶正交矩阵,\sum是由降序排列的非负的对角线元素组成的m×nm \times n矩形对角矩阵(rectangular diagonal matrix),满足

UUT=IU U^{\mathrm{T}}=I

VVT=IV V^{\mathrm{T}}=I

Σ=diag(σ1,σ2,,σp)\Sigma=\operatorname{diag}\left(\sigma_{1}, \sigma_{2}, \cdots, \sigma_{p}\right)

σ1σ2σp0\sigma_{1} \geqslant \sigma_{2} \geqslant \cdots \geqslant \sigma_{p} \geqslant 0

p=min(m,n)p=\min (m, n)

UΣVTU \Sigma V^{\mathrm{T}}称为矩阵AA的奇异值分解(singular value decomposition, SVD),σi\sigma_{i}称为矩阵AA的奇异值,UU的列向量称为左奇异向量,VV的列向量称为右奇异向量。

奇异值分解基本定理:

AA为一m×nm \times n实矩阵,ARm×nA \in \mathbf{R}^{m \times n},则AA的奇异值分解存在

A=UΣVTA=U \Sigma V^{\mathrm{T}}

其中UUmm阶正交矩阵,VVnn阶正交矩阵,Σ\Sigmam×nm \times n矩形对角矩阵,其对角线元素非负,且按降序排列。

紧奇异值分解与截断奇异值分解

A=UΣVTA=U \Sigma V^{\mathrm{T}}又称为矩阵的完全奇异值分解(full singular value decomposition)。实际常用的是奇异值分解的紧凑形式和截断形式。紧奇异值分解是与原始矩阵等秩的奇异值分解,截断奇异值分解是比原始矩阵低秩的奇异值分解。

紧奇异值分解

设有m×nm \times n实矩阵AA,其秩为rank(A)=r,rmin(m,n)\operatorname{rank}(A)=r, r \leqslant \min (m, n),则称UrΣrVrTU_{r} \Sigma_{r} V_{r}^{\mathrm{T}}AA的紧奇异值分解(compact singular value decomposition),即:

A=UrΣrVrTA=U_{r} \Sigma_{r} V_{r}^{\mathrm{T}}

其中UrU_{r}m×rm \times r矩阵,VrV_{r}n×rn \times r矩阵,Σr\Sigma_{r}rr阶对角矩阵;矩阵UrU_{r}由完全奇异值分解中UU的前rr列,矩阵VrV_{r}VV的前rr列,矩阵Σr\Sigma_{r}\sum的前rr个对角线元素得到。紧奇异值分解的对角矩阵Σr\Sigma_{r}的秩与原始矩阵AA的秩相等。

截断奇异值分解

在矩阵的奇异值分解中,只取最大的kk个奇异值(k<r,rk<r, r为矩阵的秩)对应的
部分,就得到矩阵的截断奇异值分解。实际应用中提到矩阵的奇异值分解时,通常指截断奇异值分解。

AAm×nm \times n实矩阵,其秩rank(A)=r\operatorname{rank}(A)=r,且0<k<r0<k<r,则称UkΣkVkTU_{k} \Sigma_{k} V_{k}^{\mathrm{T}}为矩阵AA的截断奇异值分解(truncated singular value decomposition)

AUkΣkVkTA \approx U_{k} \Sigma_{k} V_{k}^{\mathrm{T}}

其中UkU_{k}m×km \times k矩阵,VkV_{k}n×kn \times k矩阵,Σk\Sigma_{k}kk阶对角矩阵;矩阵UkU_{k}由完全奇异值分解中UU的前kk列,矩阵VkV_{k}VV的前kk列,矩阵Σk\Sigma_{k}Σ\Sigma的前kk个对角线元素得到。对角矩阵Σk\Sigma_{k}的秩比原始矩阵AA的秩低。

在实际应用中,常常需要对矩阵的数据进行压缩,将其近似表示,奇异值分解提供了一种方法。后面将要叙述,奇异值分解是在平方损失(弗罗贝尼乌斯范数)意义下对矩阵的最优近似。紧奇异值分解对应着无损压缩,截断奇异值分解对应着有损压缩。

几何解释

从线性变换的角度理解奇异值分解,m×nm \times n矩阵AA表示从nn维空间Rn\mathbf{R}^{n}mm维空间Rm\mathbf{R}^{m}的一个线性变换,

T:xAxT: x \rightarrow A x

xRn,AxRmx \in \mathbf{R}^{n}, A x \in \mathbf{R}^{m}xxAxA x分别是各自空间的向量。线性变换可以分解为三个简单的变换:一个坐标系的旋转或反射变换、一个坐标轴的缩放变换、另一个坐标系的旋转或反射变换。奇异值定理保证这种分解一定存在。这就是奇异值分解的几何解释。

对矩阵AA进行奇异值分解,得到A=UΣVT,VA=U \Sigma V^{\mathrm{T}}, VUU都是正交矩阵,所以VV的列向量v1,v2,,vnv_{1}, v_{2}, \cdots, v_{n}构成Rn\mathbf{R}^{n}空间的一组标准正交基,表示Rn\mathbf{R}^{n}中的正交坐标系的旋转或反射变换;UU的列向量u1,u2,,umu_{1}, u_{2}, \cdots, u_{m}构成Rm\mathbf{R}^{m}空间的一组标准正交基,表示Rm\mathbf{R}^{m}中的正交坐标系的旋转或反射变换;\sum的对角元素σ1,σ2,,σn\sigma_{1}, \sigma_{2}, \cdots, \sigma_{n}是一组非负实数,表示Rn\mathbf{R}^{n}中的原始正交坐标系坐标轴的σ1,σ2,,σn\sigma_{1}, \sigma_{2}, \cdots, \sigma_{n}倍的缩放变换。

任意一个向量xRnx \in \mathbf{R}^{n},经过基于A=UΣVTA=U \Sigma V^{\mathrm{T}}的线性变换,等价于经过坐标系的旋转或反射变换VTV^{\mathrm{T}},坐标轴的缩放变换\sum,以及坐标系的旋转或反射变换UU,得到向量AxRmA x \in \mathbf{R}^{m}。下图给出直观的几何解释(见文前彩图)。原始空间的标准正交基(红色与黄色),经过坐标系的旋转变换VTV^{\mathrm{T}},坐标轴的缩放变换\sum(黑色σ1,σ2\sigma_{1}, \sigma_{2}),坐标系的旋转变换UU,得到和经过线性变换AA等价的结果。

综上,矩阵的奇异值分解也可以看作是将其对应的线性变换分解为旋转变换、缩放变换及旋转变换的组合。根据定理, 这个变换的组合一定存在。

主要性质

  1. 设矩阵AA的奇异值分解为A=UΣVTA=U \Sigma V^{\mathrm{T}},则以下关系成立:

ATA=(UΣVT)T(UΣVT)=V(ΣTΣ)VTA^{\mathrm{T}} A=\left(U \Sigma V^{\mathrm{T}}\right)^{\mathrm{T}}\left(U \Sigma V^{\mathrm{T}}\right)=V\left(\Sigma^{\mathrm{T}} \Sigma\right) V^{\mathrm{T}}

AAT=(UΣVT)(UΣVT)T=U(ΣΣT)UTA A^{\mathrm{T}}=\left(U \Sigma V^{\mathrm{T}}\right)\left(U \Sigma V^{\mathrm{T}}\right)^{\mathrm{T}}=U\left(\Sigma \Sigma^{\mathrm{T}}\right) U^{\mathrm{T}}

也就是说,矩阵ATAA^{\mathrm{T}} AAATA A^{\mathrm{T}}的特征分解存在,且可以由矩阵AA的奇异值分解的矩阵表示。VV的列向量是ATAA^{\mathrm{T}} A的特征向量,UU的列向量是AATA A^{\mathrm{T}}的特征向量,\sum的奇异值是=ATA=A^{T} AAATA A^{\mathrm{T}}的特征值的平方根。

  1. 在矩阵AA的奇异值分解中,奇异值、左奇异向量和右奇异向量之间存在对应关系。

A=UΣVTA=U \Sigma V^{\mathrm{T}}易知

AV=UΣA V=U \Sigma

比较这一等式两端的第jj列,得到:

Avj=σjuj,j=1,2,,nA v_{j}=\sigma_{j} u_{j}, \quad j=1,2, \cdots, n

这是矩阵AA的右奇异向量和奇异值、左奇异向量的关系。

类似地,由

ATU=VΣTA^{\mathrm{T}} U=V \Sigma^{\mathrm{T}}

得到:

ATuj=σjvj,j=1,2,,nA^{\mathrm{T}} u_{j}=\sigma_{j} v_{j}, \quad j=1,2, \cdots, n
ATuj=0,j=n+1,n+2,,mA^{\mathrm{T}} u_{j}=0, \quad j=n+1, n+2, \cdots, m

这是矩阵AA的左奇异向量和奇异值、右奇异向量的关系。

  1. 矩阵AA的奇异值分解中,奇异值σ1,σ2,,σn\sigma_{1}, \sigma_{2}, \cdots, \sigma_{n}是唯一的,而矩阵UUVV不是唯一的。

  2. 矩阵AA\sum的秩相等,等于正奇异值σi\sigma_{i}的个数rr(包含重复的奇异值)。

  3. 矩阵AArr个右奇异向量v1,v2,,vrv_{1}, v_{2}, \cdots, v_{r}构成ATA^{\mathrm{T}}的值域R(AT)R\left(A^{\mathrm{T}}\right)的一组标准正交基。因为矩阵ATA^{\mathrm{T}}是从Rm\mathbf{R}^{m}映射到Rn\mathbf{R}^{n}的线性变换,则ATA^{\mathrm{T}}的值域R(AT)R\left(A^{\mathrm{T}}\right)ATA^{\mathrm{T}}的列空间是相同的,v1,v2,,vrv_{1}, v_{2}, \cdots, v_{r}ATA^{\mathrm{T}}的一组标准正交基,因而也是R(AT)R\left(A^{\mathrm{T}}\right)的一组标准正交基。

矩阵AAnrn-r个右奇异向量vr+1,vr+2,,vnv_{r+1}, v_{r+2}, \cdots, v_{n}构成AA的零空间N(A)N(A)的一组标准正交基。

矩阵AArr个左奇异向量u1,u2,,uru_{1}, u_{2}, \cdots, u_{r}构成值域R(A)R(A)的一组标准正交基。

矩阵AAmrm-r个左奇异向量ur+1,ur+2,,umu_{r+1}, u_{r+2}, \cdots, u_{m}构成ATA^{\mathrm{T}}的零空间N(AT)N\left(A^{\mathrm{T}}\right)的一组标准正交基。

奇异值分解的计算

奇异值分解基本定理证明的过程蕴含了奇异值分解的计算方法。矩阵AA的奇异值分解可以通过求对称矩阵ATAA^{\mathrm{T}} A的特征值和特征向量得到。ATAA^{\mathrm{T}} A的特征向量构成正交矩阵VV的列,ATAA^{\mathrm{T}} A的特征值λj\lambda_{j}λj\lambda_{j}的平方根为奇异值σi\sigma_{i},即

σj=λj,j=1,2,,n\sigma_{j}=\sqrt{\lambda_{j}}, \quad j=1,2, \cdots, n

对其由大到小排列作为对角线元素,构成对角矩阵\sum;求正奇异值对应的左奇异向量,再求扩充的ATA^{\mathrm{T}}的标准正交基,构成正交矩阵UU的列,从而得到AA的奇异值分解A=UΣVTA=U \Sigma V^{\mathrm{T}}

给定m×nm \times n的矩阵AA,可以按照上面的叙述写出矩阵奇异值分解的计算过程。

  1. 首先求ATAA^{\mathrm{T}} A的特征值和特征向量。

计算对称矩阵W=ATAW=A^{\mathrm{T}} A

求解特征方程

(WλI)x=0(W-\lambda I) x=0

得到特征值λi\lambda_{i},并将特征值由大到小排列:

λ1λ2λn0\lambda_{1} \geqslant \lambda_{2} \geqslant \cdots \geqslant \lambda_{n} \geqslant 0

将特征值λi(i=1,2,,n)\lambda_{i}(i=1,2, \cdots, n)代入特征方程求得对应的特征向量。

  1. nn阶正交矩阵VV
    将特征向量单位化,得到单位特征向量v1,v2,,vnv_{1}, v_{2}, \cdots, v_{n},构成nn阶正交矩阵VV

V=[v1v2vn]V=\left[\begin{array}{llll}v_{1} & v_{2} & \cdots & v_{n}\end{array}\right]

  1. m×nm \times n对角矩阵\sum

计算AA的奇异值:

σi=λi,i=1,2,,n\sigma_{i}=\sqrt{\lambda_{i}}, \quad i=1,2, \cdots, n

构造m×nm \times n矩形对角矩阵Σ\Sigma,主对角线元素是奇异值,其余元素是零:

Σ=diag(σ1,σ2,,σn)\Sigma=\operatorname{diag}\left(\sigma_{1}, \sigma_{2}, \cdots, \sigma_{n}\right)

  1. mm阶正交矩阵UU
    AA的前rr个正奇异值,令

uj=1σjAvj,j=1,2,,ru_{j}=\frac{1}{\sigma_{j}} A v_{j}, \quad j=1,2, \cdots, r

得到:

U1=[u1u2ur]U_{1}=\left[\begin{array}{llll}u_{1} & u_{2} & \cdots & u_{r}\end{array}\right]

ATA^{\mathrm{T}}的零空间的一组标准正交基{ur+1,ur+2,,um}\left\{u_{r+1}, u_{r+2}, \cdots, u_{m}\right\},令

U2=[ur+1ur+2um]U_{2}=\left[\begin{array}{llll}u_{r+1} & u_{r+2} & \cdots & u_{m}\end{array}\right]

并令:

U=[U1U2]U=\left[\begin{array}{ll}U_{1} & U_{2}\end{array}\right]

  1. 得到奇异值分解:

A=UΣVTA=U \Sigma V^{\mathrm{T}}

奇异值分解与矩阵近似

弗罗贝尼乌斯范数

奇异值分解也是一-种矩阵近似的方法,这个近似是在弗罗贝尼乌斯范数(Frobenius norm)意义下的近似。矩阵的弗罗贝尼乌斯范数是向量的L2L_{2}范数的直接推广,对应着机器学习中的平方损失函数。

弗罗贝尼乌斯范数:

设矩阵ARm×n,A=[aij]m×nA \in \mathbf{R}^{m \times n}, A=\left[a_{i j}\right]_{m \times n},定义矩阵AA的弗罗贝尼乌斯范数为:

AF=(i=1mj=1n(aij)2)12\|A\|_{F}=\left(\sum_{i=1}^{m} \sum_{j=1}^{n}\left(a_{i j}\right)^{2}\right)^{\frac{1}{2}}

引理:

设矩阵ARm×nA \in \mathbf{R}^{m \times n}AA的奇异值分解为UΣVTU \Sigma V^{\mathrm{T}},其中Σ=diag(σ1\Sigma=\operatorname{diag}\left(\sigma_{1}\right.σ2,,σn)\left.\sigma_{2}, \cdots, \sigma_{n}\right),则

AF=(σ12+σ22++σn2)12\|A\|_{F}=\left(\sigma_{1}^{2}+\sigma_{2}^{2}+\cdots+\sigma_{n}^{2}\right)^{\frac{1}{2}}

矩阵的最优近似

奇异值分解是在平方损失(弗罗贝尼乌斯范数)意义下对矩阵的最优近似,即数据压缩。

设矩阵ARm×nA \in \mathbf{R}^{m \times n},矩阵的秩rank(A)=r\operatorname{rank}(A)=r,并设M\mathcal{M}Rm×n\mathbf{R}^{m \times n}中所有秩不超过kk的矩阵集合,0<k<r0<k<r,则存在一个秩为kk的矩阵XMX \in \mathcal{M},使得:

AXF=minSMASF\|A-X\|_{F}=\min _{S \in \mathcal{M}}\|A-S\|_{F}

称矩阵XX为矩阵AA在弗罗贝尼乌斯范数意义下的最优近似。

设矩阵ARm×nA \in \mathbf{R}^{m \times n},矩阵的秩rank(A)=r\operatorname{rank}(A)=r,有奇异值分解A=A=UΣVTU \Sigma V^{\mathrm{T}},并设M\mathcal{M}Rm×n\mathbf{R}^{m \times n}中所有秩不超过kk的矩阵的集合,0<k<r0<k<r,若秩为kk的矩阵XMX \in \mathcal{M}满足:

AXF=minSMASF\|A-X\|_{F}=\min _{S \in \mathcal{M}}\|A-S\|_{F}

则:

AXF=(σk+12+σk+22++σn2)12\|A-X\|_{F}=\left(\sigma_{k+1}^{2}+\sigma_{k+2}^{2}+\cdots+\sigma_{n}^{2}\right)^{\frac{1}{2}}

特别地,若A=UΣVTA^{\prime}=U \Sigma^{\prime} V^{\mathrm{T}},其中:

Σ=[σ10σk000]=[Σk000]\Sigma^{\prime}=\left[\begin{array}{cccccc}\sigma_{1} & & & & \\ & \ddots & & & 0 \\ & & \sigma_{k} & & & \\ & & & 0 & & \\ & 0 & & & \ddots & \\ & & & & & 0\end{array}\right]=\left[\begin{array}{cc}\Sigma_{k} & 0 \\ 0 & 0\end{array}\right]

AAF=(σk+12+σk+22++σn2)12=minSMASF\left\|A-A^{\prime}\right\|_{F}=\left(\sigma_{k+1}^{2}+\sigma_{k+2}^{2}+\cdots+\sigma_{n}^{2}\right)^{\frac{1}{2}}=\min _{S \in \mathcal{M}}\|A-S\|_{F}

在秩不超过kkm×nm \times n矩阵的集合中,存在矩阵AA的弗罗贝尼乌斯范数意义下的最优近似矩阵XXA=UΣVTA^{\prime}=U \Sigma^{\prime} V^{\mathrm{T}}是达到最优值的一一个矩阵。

前面定义了矩阵的紧奇异值分解与截断奇异值分解。事实上紧奇异值分解是在弗罗贝尼乌斯范数意义下的无损压缩,截断奇异值分解是有损压缩。截断奇异值分解得到的矩阵的秩为kk,通常远小于原始矩阵的秩rr,所以是由低秩矩阵实现了对原始矩阵的压缩。

矩阵的外积展开式

下面介绍利用外积展开式对矩阵AA的近似。矩阵AA的奇异值分解UΣVTU \Sigma V^{\mathrm{T}}也可以由外积形式表示。事实上,若将AA的奇异值分解看成矩阵UΣU \SigmaVTV^{\mathrm{T}}的乘积,将UΣU \Sigma按列向量分块,将VTV^{\mathrm{T}}按行向量分块,即得

UΣ=[σ1u1σ2u2σnun]U \Sigma=\left[\begin{array}{llll}\sigma_{1} u_{1} & \sigma_{2} u_{2} & \cdots & \sigma_{n} u_{n}\end{array}\right]
VT=[v1Tv2TvnT]V^{\mathrm{T}}=\left[\begin{array}{c}v_{1}^{\mathrm{T}} \\ v_{2}^{\mathrm{T}} \\ \vdots \\ v_{n}^{\mathrm{T}}\end{array}\right]
A=σ1u1v1T+σ2u2v2T++σnunvnTA=\sigma_{1} u_{1} v_{1}^{\mathrm{T}}+\sigma_{2} u_{2} v_{2}^{\mathrm{T}}+\cdots+\sigma_{n} u_{n} v_{n}^{\mathrm{T}}

称为矩阵AA的外积展开式,其中ukvkTu_{k} v_{k}^{\mathrm{T}}m×nm \times n矩阵,是列向量uku_{k}和行向量vkTv_{k}^{\mathrm{T}}的外积,其第ii行第jj列元素为uku_{k}的第ii个元素与vkTv_{k}^{\mathrm{T}}的第jj个元素的乘积。即

uivjT=[u1iu2iumi][v1jv2jvnj]=[u1iv1ju1iv2ju1ivnju2iv1ju2iv2ju2ivnjumiv1jumiv2jumivnj]u_{i} v_{j}^{\mathrm{T}}=\left[\begin{array}{c}u_{1 i} \\ u_{2 i} \\ \vdots \\ u_{m i}\end{array}\right]\left[\begin{array}{cccc}v_{1 j} & v_{2 j} & \cdots & v_{n j}\end{array}\right]=\left[\begin{array}{cccc}u_{1 i} v_{1 j} & u_{1 i} v_{2 j} & \cdots & u_{1 i} v_{n j} \\ u_{2 i} v_{1 j} & u_{2 i} v_{2 j} & \cdots & u_{2 i} v_{n j} \\ \vdots & \vdots & & \vdots \\ u_{m i} v_{1 j} & u_{m i} v_{2 j} & \cdots & u_{m i} v_{n j}\end{array}\right]

AA的外积展开式也可以写成下面的形式

A=k=1nAk=k=1nσkukvkTA=\sum_{k=1}^{n} A_{k}=\sum_{k=1}^{n} \sigma_{k} u_{k} v_{k}^{\mathrm{T}}

其中Ak=σkukvkTA_{k}=\sigma_{k} u_{k} v_{k}^{\mathrm{T}}m×nm \times n矩阵。

由矩阵AA的外积展开式知,若AA的秩为nn,则

A=σ1u1v1T+σ2u2v2T++σnunvnTA=\sigma_{1} u_{1} v_{1}^{\mathrm{T}}+\sigma_{2} u_{2} v_{2}^{\mathrm{T}}+\cdots+\sigma_{n} u_{n} v_{n}^{\mathrm{T}}

一般地,设矩阵

Ak=σ1u1v1T+σ2u2v2T++σkukvkTA_{k}=\sigma_{1} u_{1} v_{1}^{\mathrm{T}}+\sigma_{2} u_{2} v_{2}^{\mathrm{T}}+\cdots+\sigma_{k} u_{k} v_{k}^{\mathrm{T}}

AkA_{k}的秩为kk,并且AkA_{k}是秩为kk的矩阵中在弗罗贝尼乌斯范数意义下AA的最优近似矩阵。矩阵AkA_{k}就是AA的截断奇异值分解。

由于通常奇异值σi\sigma_{i}递减很快,所以kk取很小值时,AkA_{k}也可以对AA有很好的近似。

主成分分析(《统计学习方法》)

主成分分析(principal component analysis, PCA)是一种常用的无监督学习方法,这一方法利用正交变换把由线性相关变量表示的观测数据转换为少数几个由线性无关变量表示的数据,线性无关的变量称为主成分。主成分的个数通常小于原始变量的个数,所以主成分分析属于降维方法。主成分分析主要用于发现数据中的基本结构,即数据中变量之间的关系,是数据分析的有力工具,也用于其他机器学习方法的前处理。

总体主成分分析

基本想法

统计分析中,数据的变量之间可能存在相关性,以致增加了分析的难度。于是,考虑由少数不相关的变量来代替相关的变量,用来表示数据,并且要求能够保留数据中的大部分信息。

主成分分析中,首先对给定数据进行规范化,使得数据每一变量的平均值为 0, 方差为 1。之后对数据进行正交变换,原来由线性相关变量表示的数据,通过正交变换变成由若千个线性无关的新变量表示的数据。新变量是可能的正交变换中变量的方差的和(信息保存)最大的,方差表示在新变量上信息的大小。将新变量依次称为第一主成分、第二主成分等。这就是主成分分析的基本思想。通过主成分分析,可以利用主成分近似地表示原始数据,这可理解为发现数据的“基本结构”;也可以把数据由少数主成分表示,这可理解为对数据降维。

下面给出主成分分析的直观解释。数据集合中的样本由实数空间(正交坐标系)中的点表示,空间的一个坐标轴表示一个变量,规范化处理后得到的数据分布在原点附近。对原坐标系中的数据进行主成分分析等价于进行坐标系旋转变换,将数据投影到新坐标系的坐标轴上;新坐标系的第一坐标轴、第二坐标轴等分别表示第一主成分、第二主成分等,数据在每- -轴上的坐标值的平方表示相应变量的方差;并且,这个坐标系是在所有可能的新的坐标系中,坐标轴上的方差的和最大的。

例如,数据由两个变量x1x_{1}x2x_{2}表示,存在于二维空间中,每个点表示一个样本,如下图所示。对数据已做规范化处理,可以看出,这些数据分布在以原点为中心的左下至右上倾斜的椭圆之内。很明显在这个数据中的变量x1x_{1}x2x_{2}是线性相关的,具体地,当知道其中一个变量x1x_{1}的取值时,对另一个变量x2x_{2}的预测不是完全随机的,反之亦然。

主成分分析对数据进行正交变换,具体地,对原坐标系进行旋转变换,并将数据在新坐标系表示,如图所示。数据在原坐标系由变量x1x_{1}x2x_{2}表示,通过正交变换后,在新坐标系里,由变量y1y_{1}y2y_{2}表示。主成分分析选择方差最大的方向(第一主成分)作为新坐标系的第一坐标轴,即y1y_{1} 轴,在这里意味着选择椭圆的长轴作为新坐标系的第一坐标轴;之后选择与第一坐标轴正交,且方差次之的方向(第二主成分)作为新坐标系的第二坐标轴,即 y2y_{2}轴,在这里意味着选择椭圆的短轴作为新坐标系的第二坐标轴。在新坐标系里,数据中的变量y1y_{1}y2y_{2} 是线性无关的,当知道其中一个变量 y1y_{1}的取值时,对另一个变量y2y_{2}的预测是完全随机的;反之亦然。如果主成分分析只取第一主成分,即新坐标系的y1y_{1}轴,那么等价于将数据投影在椭圆长轴上,用这个主轴表示数据,将二维空间的数据压缩到一维空间中。

下面再看方差最大的解释。假设有两个变量x1x_{1}x2x_{2},三个样本点ABCA、B、C,样本分布在由x2x_{2}x2x_{2}轴组成的坐标系中,如图所示。对坐标系进行旋转变换,得到新的坐标轴y1y_{1},表示新的变量y1y_{1}, 样本点A,B,CA, B, Cy1y_{1}轴上投影,得到y1y_{1}轴的坐标值,A,B,CA^{\prime}, B^{\prime}, C^{\prime}。坐标值的平方和OA2+OB2+OC2O A^{\prime 2}+O B^{\prime 2}+O C^{\prime 2}表示样本在变量y1y_{1}比的方差和。主成分分析旨在选取正交变换中方差最大的变量,作为第一主成分,也就是旋转变换中坐标值的平方和最大的轴。注意到旋转变换中样本点到原点的距离的平方和OA2+OB2+OC2O A^{2}+O B^{2}+O C^{2}保持不变,根据勾股定理,坐标值的平方和OA2+OB2+OC2O A^{\prime 2}+O B^{\prime 2}+O C^{\prime 2}最大等价于样本点到y1y_{1}轴的距离的平方和AA2+BB2+CC2A A^{\prime 2}+B B^{\prime 2}+C C^{\prime 2}最小,所以,等价地,主成分分析在旋转变换中选取离样本点的距离平方和最小的轴,作为第一主成分。第二主成分等的选取,在保证与已选坐标轴正交的条件下,类似地进行。

在数据总体(population)。上进行的主成分分析称为总体主成分分析,在有限样本进行的主成分分析称为样本主成分分析,前者是后者的基础。以下分别予以介绍。

定义和导出

假设 x=(x1,x2,,xm)Tx=\left(x_{1}, x_{2}, \dots, x_{m}\right)^{\mathrm{T}}mm维随机变量,其均值向量是μ\mu:

μ=E(x)=(μ1,μ2,,μm)T\boldsymbol{\mu}=E(\boldsymbol{x})=\left(\mu_{1}, \mu_{2}, \cdots, \mu_{m}\right)^{\mathrm{T}}

协方差矩阵是\sum

Σ=cov(x,x)=E[(xμ)(xμ)T]\Sigma=\operatorname{cov}(\boldsymbol{x}, \boldsymbol{x})=E\left[(\boldsymbol{x}-\boldsymbol{\mu})(\boldsymbol{x}-\boldsymbol{\mu})^{\mathrm{T}}\right]

考虑由mm维随机变量xxmm维随机变量y=(y1,y2,,ym)Ty=\left(y_{1}, y_{2}, \cdots, y_{m}\right)^{\mathrm{T}}的线性变换:

yi=αiTx=α1ix1+α2ix2++αmixmy_{i}=\alpha_{i}^{\mathrm{T}} \boldsymbol{x}=\alpha_{1 i} x_{1}+\alpha_{2 i} x_{2}+\cdots+\alpha_{m i} x_{m}

由随机变量的性质可知,

E(yi)=αiTμ,i=1,2,,mE\left(y_{i}\right)=\alpha_{i}^{\mathrm{T}} \mu, \quad i=1,2, \cdots, m
var(yi)=αiTΣαi,i=1,2,,m\operatorname{var}\left(y_{i}\right)=\alpha_{i}^{\mathrm{T}} \Sigma \alpha_{i}, \quad i=1,2, \cdots, m
cov(yi,yj)=αiTΣαj,i=1,2,,m;j=1,2,,m\operatorname{cov}\left(y_{i}, y_{j}\right)=\alpha_{i}^{\mathrm{T}} \Sigma \alpha_{j}, \quad i=1,2, \cdots, m ; \quad j=1,2, \cdots, m

下面给出总体主成分的定义。

给定一个如式yi=αiTx=α1ix1+α2ix2++αmixmy_{i}=\alpha_{i}^{\mathrm{T}} \boldsymbol{x}=\alpha_{1 i} x_{1}+\alpha_{2 i} x_{2}+\cdots+\alpha_{m i} x_{m}所示的线性变换,如果它们满足下列条件:

  1. 系数向量αiT\alpha_{i}^{\mathrm{T}}是单位向量,即αiTαi=1,i=1,2,,m\alpha_{i}^{\mathrm{T}} \alpha_{i}=1, i=1,2, \cdots, m
  2. 变量yiy_{i}yjy_{j}互不相关,即cov(yi,yj)=0(ij)\operatorname{cov}\left(y_{i}, y_{j}\right)=0(i \neq j)
  3. 变量y1y_{1}xx的所有线性变换中方差最大的;y2y_{2}是与y1y_{1}不相关的xx的所有线性变换中方差最大的;一般地,yiy_{i}是与y1,y2,,yi1(i=1,2,,m)y_{1}, y_{2}, \cdots, y_{i-1}(i=1,2, \cdots, m)都不相关的xx的所有线性变换中方差最大的;这时分别称y1,y2,,ymy_{1}, y_{2}, \cdots, y_{m}xx的第一主成分、第二主成分、。... 第mm主成分。

定义中的条件(1) 表明线性变换是正交变换,α1,α2,,αm\alpha_{1}, \alpha_{2}, \cdots, \alpha_{m}是其一组标准正交基,

αiTαj={1,i=j0,ij\alpha_{i}^{\mathrm{T}} \alpha_{j}=\left\{\begin{array}{ll}1, & i=j \\ 0, & i \neq j\end{array}\right.

条件(2) (3) 给出了一个求主成分的方法:第一步,在x\boldsymbol{x}的所有线性变换

α1Tx=i=1mαi1xi\alpha_{1}^{\mathrm{T}} \boldsymbol{x}=\sum_{i=1}^{m} \alpha_{i 1} x_{i}

中,在α1Tα1=1\alpha_{1}^{\mathrm{T}} \alpha_{1}=1条件下,求方差最大的,得到x\boldsymbol{x}的第一主成分;第二步,在与α1Tx\alpha_{1}^{\mathrm{T}} \boldsymbol{x}不相关的xx的所有线性变换

α2Tx=i=1mαi2xi\alpha_{2}^{\mathrm{T}} \boldsymbol{x}=\sum_{i=1}^{m} \alpha_{i 2} x_{i}

中,在α2Tα2=1\alpha_{2}^{\mathrm{T}} \alpha_{2}=1条件下,求方差最大的,得到xx的第二主成分;第kk步,在与α1Tx,α2Tx,,αk1Tx\alpha_{1}^{\mathrm{T}} \boldsymbol{x}, \alpha_{2}^{\mathrm{T}} \boldsymbol{x}, \cdots, \alpha_{k-1}^{\mathrm{T}} \boldsymbol{x}不相关的x\boldsymbol{x}的所有线性变换

αkTx=i=1mαikxi\alpha_{k}^{\mathrm{T}} \boldsymbol{x}=\sum_{i=1}^{m} \alpha_{i k} x_{i}

中,在αkTαk=1\alpha_{k}^{\mathrm{T}} \alpha_{k}=1条件下,求方差最大的,得到L\mathcal{L}的第kk主成分;如此继续下去,直到得到xx的第mm主成分。

主要性质

xxmm维随机变量,\sumxx的协方差矩阵,\sum的特征值分别是λ1λ2λm0\lambda_{1} \geqslant \lambda_{2} \geqslant \cdots \geqslant \lambda_{m} \geqslant 0,特征值对应的单位特征向量分别是α1,α2,,αm\alpha_{1}, \alpha_{2}, \cdots, \alpha_{m},则xx的第kk主成分是:

yk=αkTx=α1kx1+α2kx2++αmkxm,k=1,2,,my_{k}=\alpha_{k}^{\mathrm{T}} \boldsymbol{x}=\alpha_{1 k} x_{1}+\alpha_{2 k} x_{2}+\cdots+\alpha_{m k} x_{m}, \quad k=1,2, \cdots, m

xx的第kk主成分的方差是:

var(yk)=αkTΣαk=λk,k=1,2,,m\operatorname{var}\left(y_{k}\right)=\alpha_{k}^{\mathrm{T}} \Sigma \alpha_{k}=\lambda_{k}, \quad k=1,2, \cdots, m

即协方差矩阵\sum的第kk个特征值。

若特征值有重根,对应的特征向量组成mm维空间Rm\mathbf{R}^{m}的一个子空间,子空间的维数等于重根数,在子空间任取一-个正交坐标系,这个坐标系的单位向量就可作为特征向量。这时坐标系的取法不唯一。

mm维随机变量y=(y1,y2,,ym)Ty=\left(y_{1}, y_{2}, \cdots, y_{m}\right)^{\mathrm{T}}的分量依次是x\boldsymbol{x}的第一主成分到第mm主成分的充要条件是:

  1. y=ATx\boldsymbol{y}=A^{\mathrm{T}} \boldsymbol{x},AA为正交矩阵

A=[α11α12α1mα21α22α2mαm1αm2αmm]A=\left[\begin{array}{cccc}\alpha_{11} & \alpha_{12} & \cdots & \alpha_{1 m} \\ \alpha_{21} & \alpha_{22} & \cdots & \alpha_{2 m} \\ \vdots & \vdots & & \vdots \\ \alpha_{m 1} & \alpha_{m 2} & \cdots & \alpha_{m m}\end{array}\right]

  1. y\boldsymbol{y}的协方差矩阵为对角矩阵

cov(y)=diag(λ1,λ2,,λm)\operatorname{cov}(\boldsymbol{y})=\operatorname{diag}\left(\lambda_{1}, \lambda_{2}, \cdots, \lambda_{m}\right)
λ1λ2λm\lambda_{1} \geqslant \lambda_{2} \geqslant \cdots \geqslant \lambda_{m}

其中λk\lambda_{k}\sum的第kk个特征值,αk\alpha_{k}是对应的单位特征向量,k=1,2,,mk=1,2, \cdots, m

下面叙述总体主成分的性质:

  1. 总体主成分yy的协方差矩阵是对角矩阵

cov(y)=Λ=diag(λ1,λ2,,λm)\operatorname{cov}(\boldsymbol{y})=\Lambda=\operatorname{diag}\left(\lambda_{1}, \lambda_{2}, \cdots, \lambda_{m}\right)

  1. 总体主成分y\boldsymbol{y}的方差之和等于随机变量x\boldsymbol{x}的方差之和,即

i=1mλi=i=1mσii\sum_{i=1}^{m} \lambda_{i}=\sum_{i=1}^{m} \sigma_{i i}

其中σii\sigma_{i i}是随机变量Li\mathcal{L}_{i}的方差,即协方差矩阵\sum的对角元素。

  1. kk个主成分yky_{k}与变量xi\boldsymbol{x}_{\boldsymbol{i}}的相关系数ρ(yk,xi)\rho\left(y_{k}, x_{i}\right)称为因子负荷量(factor loading),它表示第kk个主成分yky_{k}与变量Xi\mathcal{X} i的相关关系。计算公式是

ρ(yk,xi)=λkαikσii,k,i=1,2,,m\rho\left(y_{k}, x_{i}\right)=\frac{\sqrt{\lambda_{k}} \alpha_{i k}}{\sqrt{\sigma_{i i}}}, \quad k, i=1,2, \cdots, m

  1. kk个主成分yky_{k}mm个变量的因子负荷量满足

i=1mσiiρ2(yk,xi)=λk\sum_{i=1}^{m} \sigma_{i i} \rho^{2}\left(y_{k}, x_{i}\right)=\lambda_{k}

  1. mm个主成分与第ii个变量ii的因子负荷量满足

k=1mρ2(yk,xi)=1\sum_{k=1}^{m} \rho^{2}\left(y_{k}, x_{i}\right)=1

主成分的个数

主成分分析的主要目的是降维,所以一般选择k(km)k(k \ll m)个主成分(线性无关变量)来代替mm个原有变量(线性相关变量),使问题得以简化,并能保留原有变量的大部分信息。这里所说的信息是指原有变量的方差。为此,先给出一个定理,说明选择kk个主成分是最优选择。

对任意正整数qq1qm1 \leqslant q \leqslant m,考虑正交线性变换

y=BTx\boldsymbol{y}=B^{\mathrm{T}} \boldsymbol{x}

其中yyqq维向量,BTB^{\mathrm{T}}q×mq \times m矩阵,令y\boldsymbol{y}的协方差矩阵为:

Σy=BTΣB\Sigma_{y}=B^{\mathrm{T}} \Sigma B

Σy\Sigma_{y}的迹tr(Σy)\operatorname{tr}\left(\Sigma_{\boldsymbol{y}}\right)B=AqB=A_{q}时取得最大值,其中矩阵AqA_{q}由正交矩阵AA的前qq列组成。

定理表明,当xx的线性变换yyB=AqB=A_{q}时,其协方差矩阵Σy\Sigma_{\boldsymbol{y}}的迹tr(Σy)\operatorname{tr}\left(\Sigma_{y}\right)取得最大值,这就是说,当取AA的前qq列取xx的前qq个主成分时,能够最大限度地保留原有变量方差的信息。

考虑正交变换

y=BTx\boldsymbol{y}=B^{\mathrm{T}} \boldsymbol{x}

这里BTB^{\mathrm{T}}p×mp \times m矩阵,AAΣy\Sigma_{y}的定义与前相同,则tr(Σy)\operatorname{tr}\left(\Sigma_{y}\right)B=ApB=A_{p}时取得最小值,其中矩阵ApA_{p}AA的后pp列组成。

该定理可以理解为,当舍弃AA的后pp列,即舍弃变量xx的后pp个主成分时,原有变量的方差的信息损失最少。

以上两个定理可以作为选择kk个主成分的理论依据。具体选择kk的方法,通常利用方差贡献率。

kk主成分yky_{k}的方差贡献率定义为yky_{k}的方差与所有方差之和的比,记作ηk\eta_{k}:

ηk=λki=1mλi\eta_{k}=\frac{\lambda_{k}}{\sum_{i=1}^{m} \lambda_{i}}

kk个主成分y1,y2,,yky_{1}, y_{2}, \cdots, y_{k}的累计方差贡献率定义为kk个方差之和与所有方差之和的比:

i=1kηi=i=1kλii=1mλi\sum_{i=1}^{k} \eta_{i}=\frac{\sum_{i=1}^{k} \lambda_{i}}{\sum_{i=1}^{m} \lambda_{i}}

通常取kk使得累计方差贡献率达到规定的百分比以上,例如 70%~80%以上。累计方差贡献率反映了主成分保留信息的比例,但它不能反映对某个原有变量xi\boldsymbol{x}_{i}保留信息的比例,这时通常利用kk个主成分y1,y2,,yky_{1}, y_{2}, \cdots, y_{k}对原有变量xi\boldsymbol{x}_{i}的贡献率。

规范化变量的总体主成分

在实际问题中,不同变量可能有不同的量纲,直接求主成分有时会产生不合理的结果。为了消除这个影响,常常对各个随机变量实施规范化,使其均值为 0, 方差为 1。

x=(x1,x2,,xm)T\boldsymbol{x}=\left(x_{1}, x_{2}, \cdots, x_{m}\right)^{\mathrm{T}}mm维随机变量,xi\boldsymbol{x}_{i}为第ii个随机变量,i=i=1,2,,m1,2, \cdots, m,令

xi=xiE(xi)var(xi),i=1,2,,mx_{i}^{*}=\frac{x_{i}-E\left(x_{i}\right)}{\sqrt{\operatorname{var}\left(x_{i}\right)}}, \quad i=1,2, \cdots, m,令

xi=xiE(xi)var(xi),i=1,2,,mx_{i}^{*}=\frac{x_{i}-E\left(x_{i}\right)}{\sqrt{\operatorname{var}\left(x_{i}\right)}}, \quad i=1,2, \cdots, m

其中E(xi),var(xi)E\left(x_{i}\right), \operatorname{var}\left(x_{i}\right)分别是随机变量xi\boldsymbol{x}_{i}的均值和方差,这时xi\boldsymbol{x}_{i}^{*}就是xi\boldsymbol{x}_{i}的规范化随机变量。

显然,规范化随机变量的协方差矩阵就是相关矩阵RR。主成分分析通常在规范化随机变量的协方差矩阵即相关矩阵上进行。

对照总体主成分的性质可知,规范化随机变量的总体主成分有以下性质:

  1. 规范化变量主成分的协方差矩阵是

Λ=diag(λ1,λ2,,λm)\Lambda^{*}=\operatorname{diag}\left(\lambda_{1}^{*}, \lambda_{2}^{*}, \cdots, \lambda_{m}^{*}\right)

其中λ1λ2λm0\lambda_{1}^{*} \geqslant \lambda_{2}^{*} \geqslant \cdots \geqslant \lambda_{m}^{*} \geqslant 0是相关矩阵RR的特征值。

  1. 协方差矩阵的特征值之和mm

k=1mλk=m\sum_{k=1}^{m} \lambda_{k}^{*}=m

  1. 规范化随机变量Li\mathcal{L}_{i}^{*}与主成分yky_{k}^{*}的相关系数的平方和等于λk\lambda_{k}^{*}:

i=1mρ2(yk,xi)=i=1mλkeik2=λk,k=1,2,,m\sum_{i=1}^{m} \rho^{2}\left(y_{k}^{*}, x_{i}^{*}\right)=\sum_{i=1}^{m} \lambda_{k}^{*} e_{i k}^{* 2}=\lambda_{k}^{*}, \quad k=1,2, \cdots, m

  1. 规范化随机变量xix_{i}^{*}与所有主成分yky_{k}^{*}的相关系数的平方和等于 1

k=1mρ2(yk,xi)=k=1mλkeik2=1,i=1,2,,m\sum_{k=1}^{m} \rho^{2}\left(y_{k}^{*}, x_{i}^{*}\right)=\sum_{k=1}^{m} \lambda_{k}^{*} e_{i k}^{* 2}=1, \quad i=1,2, \cdots, m

样本主成分分析

在实际问题中,需要在观测数据上进行主成分分析,这就是样本主成分分析。有了总体主成分的概念,容易理解样本主成分的概念。样本主成分也和总体主成分具有相同的性质。

样本主成分的定义和性质

假设对mm维随机变量x=(x1,x2,,xm)T\boldsymbol{x}=\left(x_{1}, x_{2}, \cdots, x_{m}\right)^{\mathrm{T}}进行nn次独立观测,x1,x2,,xn\boldsymbol{x}_{1}, \boldsymbol{x}_{2}, \cdots, \boldsymbol{x}_{n}表示观测样本,其中:xj=(x1j,x2j,,xmj)T\boldsymbol{x}_{j}=\left(x_{1 j}, x_{2 j}, \cdots, x_{m j}\right)^{\mathrm{T}}表示第jj个观测样本,xij\boldsymbol{x}_{i j}表示第jj个观测样本的第ii个变量,j=1,2,,nj=1,2, \cdots, n。观测数据用样本矩阵XX表示,记作

X=[x1x2xn]=[x11x12x1nx21x22x2nxm1xm2xmn]X=\left[\begin{array}{llll}x_{1} & x_{2} & \cdots & x_{n}\end{array}\right]=\left[\begin{array}{cccc}x_{11} & x_{12} & \cdots & x_{1 n} \\ x_{21} & x_{22} & \cdots & x_{2 n} \\ \vdots & \vdots & & \vdots \\ x_{m 1} & x_{m 2} & \cdots & x_{m n}\end{array}\right]

给定样本矩阵XX,可以估计样本均值,以及样本协方差。样本均值向量xˉ\bar{x}为:

xˉ=1nj=1nxj\bar{x}=\frac{1}{n} \sum_{j=1}^{n} \boldsymbol{x}_{j}

样本协方差矩阵SS为:

S=[sij]m×mS=\left[s_{i j}\right]_{m \times m}
sij=1n1k=1n(xikxˉi)(xjkxˉj),i,j=1,2,,ms_{i j}=\frac{1}{n-1} \sum_{k=1}^{n}\left(x_{i k}-\bar{x}_{i}\right)\left(x_{j k}-\bar{x}_{j}\right), \quad i, j=1,2, \cdots, m

其中xˉi=1nk=1nxik\bar{x}_{i}=\frac{1}{n} \sum_{k=1}^{n} x_{i k}为第ii个变量的样本均值,xˉj=1nk=1nxjk\bar{x}_{j}=\frac{1}{n} \sum_{k=1}^{n} x_{j k}为第jj个变量的样本均值。

样本相关矩阵RR为:

R=[rij]m×m,rij=sijsiisjj,i,j=1,2,,mR=\left[r_{i j}\right]_{m \times m}, \quad r_{i j}=\frac{s_{i j}}{\sqrt{s_{i i} s_{j j}}}, \quad i, j=1,2, \cdots, m

定义mm维向量x=(x1,x2,,xm)T\boldsymbol{x}=\left(x_{1}, x_{2}, \cdots, x_{m}\right)^{\mathrm{T}}mm维向量y=(y1,y2,,yn)Ty=\left(y_{1}, y_{2}, \ldots, y_{n}\right)^{T}的线性变换:

y=ATx\boldsymbol{y}=A^{\mathrm{T}} \boldsymbol{x}

其中

A=[a1a2am]=[a11a12a1ma21a22a2mam1am2amm]ai=(a1i,a2i,,ami)T,i=1,2,,m\begin{array}{l}A=\left[\begin{array}{llllll}a_{1} & a_{2} & \cdots & a_{m}\end{array}\right]=\left[\begin{array}{cccc}a_{11} & a_{12} & \cdots & a_{1 m} \\ a_{21} & a_{22} & \cdots & a_{2 m} \\ \vdots & \vdots & & \vdots \\ a_{m 1} & a_{m 2} & \cdots & a_{m m}\end{array}\right] \\ a_{i}=\left(a_{1 i}, a_{2 i}, \cdots, a_{m i}\right)^{\mathrm{T}}, & i=1,2, \cdots, m\end{array}

考虑任意一个线性变换:

yi=aiTx=a1ix1+a2ix2++amixm,i=1,2,,m\boldsymbol{y}_{i}=a_{i}^{\mathrm{T}} \boldsymbol{x}=a_{1 i} \boldsymbol{x}_{1}+a_{2 i} \boldsymbol{x}_{2}+\cdots+a_{m i} \boldsymbol{x}_{m}, \quad i=1,2, \cdots, m

其中yiy_{i}mm维向量yy的第ii个变量,相应于容量为nn的样本x1,x2,,xn\boldsymbol{x}_{1}, \boldsymbol{x}_{2}, \cdots, \boldsymbol{x}_{n},yiy_{i}的样本均值yˉi\bar{y} i为:

yˉi=1nj=1naiTxj=aiTx\bar{y}_{i}=\frac{1}{n} \sum_{j=1}^{n} a_{i}^{\mathrm{T}} \boldsymbol{x}_{j}=a_{i}^{\mathrm{T}} \overline{\boldsymbol{x}}

其中x\overline{\boldsymbol{x}}是随机向量x\boldsymbol{x}的样本均值:

x=1nj=1nxj\overline{\boldsymbol{x}}=\frac{1}{n} \sum_{j=1}^{n} \boldsymbol{x}_{j}

yiy_{i}的样本方差var(yi)\operatorname{var}\left(y_{i}\right)为:

var(yi)=1n1j=1n(aiTxjaiTx)2=aiT[1n1j=1n(xjx)(xjx)T]ai=aiTSai\begin{aligned} \operatorname{var}\left(y_{i}\right) &=\frac{1}{n-1} \sum_{j=1}^{n}\left(a_{i}^{\mathrm{T}} \boldsymbol{x}_{j}-a_{i}^{\mathrm{T}} \overline{\boldsymbol{x}}\right)^{2} \\ &=a_{i}^{\mathrm{T}}\left[\frac{1}{n-1} \sum_{j=1}^{n}\left(\boldsymbol{x}_{j}-\overline{\boldsymbol{x}}\right)\left(\boldsymbol{x}_{j}-\overline{\boldsymbol{x}}\right)^{\mathrm{T}}\right] a_{i}=a_{i}^{\mathrm{T}} S a_{i} \end{aligned}

对任意两个线性变换yi=αiTx,yk=αkTxy_{i}=\alpha_{i}^{\mathrm{T}} \boldsymbol{x}, y_{k}=\alpha_{k}^{\mathrm{T}} \boldsymbol{x},相应于容量为 nn的样本x1,x2,,xn\boldsymbol{x}_{1}, \boldsymbol{x}_{2}, \cdots, \boldsymbol{x}_{n},yky_{k}的样本协方差为

cov(yi,yk)=aiTSak\operatorname{cov}\left(y_{i}, y_{k}\right)=a_{i}^{\mathrm{T}} S a_{k}

样本主成分:

给定样本矩阵XX。样本第一主成分y1=a1Txy_{1}=a_{1}^{\mathrm{T}} \boldsymbol{x}是在a1Ta1=1a_{1}^{\mathrm{T}} a_{1}=1是在a1Ta1=1a_{1}^{\mathrm{T}} a_{1}=1条件下,使得a1Txj(j=1,2,,n)a_{1}^{\mathrm{T}} \boldsymbol{x}_{j}(j=1,2, \cdots, n)的样本方差a1TSa1a_{1}^{\mathrm{T}} S a_{1}最大的x\boldsymbol{x}的线性变换;一般地,样本第ii主成分yi=aiTxy_{i}=a_{i}^{\mathrm{T}} \boldsymbol{x}是在aiTai=1a_{i}^{\mathrm{T}} a_{i}=1aiTxja_{i}^{\mathrm{T}} \boldsymbol{x}_{j}akTxj(k<i,j=1,2,,n)a_{k}^{\mathrm{T}} \boldsymbol{x}_{j}(k<i, \quad j=1,2, \cdots, n)的样本协方差akTSai=0a_{k}^{\mathrm{T}} S a_{i}=0条件下,使得aiTxj(j=1,2,,n)a_{i}^{\mathrm{T}} \boldsymbol{x}_{j}(j=1,2, \cdots, n)的样本方差aiTSaia_{i}^{\mathrm{T}} S a_{i}最大的xx的线性变换。

样本主成分与总体主成分具有同样的性质。这从样本主成分的定义容易看出。只要以样本协方差矩阵SS代替总体协方差矩阵\sum即可。总体主成分的定理对样本主成分依然成立。

在使用样本主成分时,-般假设样本数据是规范化的,即对样本矩阵作如下变换:

xij=xijxˉisii,i=1,2,,m;j=1,2,,nx_{i j}^{*}=\frac{x_{i j}-\bar{x}_{i}}{\sqrt{s_{i i}}}, \quad i=1,2, \cdots, m ; \quad j=1,2, \cdots, n

其中:

xˉi=1nj=1nxij,i=1,2,,m\bar{x}_{i}=\frac{1}{n} \sum_{j=1}^{n} x_{i j}, \quad i=1,2, \cdots, m
sii=1n1j=1n(xijxˉi)2,i=1,2,,ms_{i i}=\frac{1}{n-1} \sum_{j=1}^{n}\left(x_{i j}-\bar{x}_{i}\right)^{2}, \quad i=1,2, \cdots, m

为了方便,以下将规范化变量xijx_{i j}^{*}仍记作xij\boldsymbol{x}_{i j},规范化的样本矩阵仍记作XX。这时,样本协方差矩阵SS就是样本相关矩阵RR

样本协方差矩阵SS是总体协方差矩阵Σ\Sigma的无偏估计,样本相关矩阵RR是总体相关矩阵的无偏估计SS的特征值和特征向量是Σ\Sigma的特征值和特征向量的极大似然估计。

相关矩阵的特征值分解算法

传统的主成分分析通过数据的协方差矩阵或相关矩阵的特征值分解进行,现在常用的方法是通过数据矩阵的奇异值分解进行。首先叙述数据的协方差矩阵或相关矩阵的特征值分解方法。

给定样本矩阵XX,利用数据的样本协方差矩阵或者样本相关矩阵的特征值分解进行主成分分析。具体步骤如下:

  1. 对观测数据按式

xij=xijxˉisii,i=1,2,,m;j=1,2,,nx_{i j}^{*}=\frac{x_{i j}-\bar{x}_{i}}{\sqrt{s_{i i}}}, \quad i=1,2, \cdots, m ; \quad j=1,2, \cdots, n

进行规范化处理,得到规范化数据矩阵,仍以XX表示。
2. 依据规范化数据矩阵,计算样本相关矩阵RR

R=[rij]m×m=1n1XXTR=\left[r_{i j}\right]_{m \times m}=\frac{1}{n-1} X X^{\mathrm{T}}

其中:

rij=1n1l=1nxilxlj,i,j=1,2,,mr_{i j}=\frac{1}{n-1} \sum_{l=1}^{n} x_{i l} x_{l j}, \quad i, j=1,2, \cdots, m

  1. 求样本相关矩阵RRkk个特征值和对应的kk个单位特征向量。

求解RR的特征方程:

RλI=0|R-\lambda I|=0

RRmm个特征值:

λ1λ2λm\lambda_{1} \geqslant \lambda_{2} \geqslant \cdots \geqslant \lambda_{m}

求方差贡献率i=1kηi\sum_{i=1}^{k} \eta_{i}达到预定值的主成分个数kk:

求前kk个特征值对应的单位特征向量:

ai=(a1i,a2i,,ami)T,i=1,2,,ka_{i}=\left(a_{1 i}, a_{2 i}, \cdots, a_{m i}\right)^{\mathrm{T}}, \quad i=1,2, \cdots, k

  1. kk个样本主成分

kk个单位特征向量为系数进行线性变换,求出kk个样本主成分:

yi=aiTx,i=1,2,,ky_{i}=a_{i}^{\mathrm{T}} \boldsymbol{x}, \quad i=1,2, \cdots, k

  1. 计算kk个主成分yjy_{j}与原变量xi\boldsymbol{x}_{i}的相关系数ρ(xi,yj)\rho\left(x_{i}, y_{j}\right),以及kk个主成分对原变量xi\boldsymbol{x}_{i}的贡献率vi\mathcal{v}_{i}

  2. 计算nn个样本的kk个主成分值:

将规范化样本数据代入kk个主成分式yi=aiTx,i=1,2,,ky_{i}=a_{i}^{\mathrm{T}} \boldsymbol{x}, \quad i=1,2, \cdots, k,得到nn个样本的主成分值。
jj个样本xj=(x1j,x2j,,xmj)T\boldsymbol{x}_{j}=\left(x_{1 j}, x_{2 j}, \cdots, x_{m j}\right)^{\mathrm{T}}的第ii主成分值是:

yij=(a1i,a2i,,ami)(x1j,x2j,,xmj)T=l=1malixljy_{i j}=\left(a_{1 i}, a_{2 i}, \cdots, a_{m i}\right)\left(x_{1 j}, x_{2 j}, \cdots, x_{m j}\right)^{\mathrm{T}}=\sum_{l=1}^{m} a_{l i} x_{l j}
i=1,2,,m,j=1,2,,ni=1,2, \cdots, m, \quad j=1,2, \cdots, n

主成分分析得到的结果可以用于其他机器学习方法的输入。比如,将样本点投影到以主成分为坐标轴的空间中,然后应用聚类算法,就可以对样本点进行聚类。

数据矩阵的奇异值分解算法

给定样本矩阵XX,利用数据矩阵奇异值分解进行主成分分析。具体过程如下。这里假设有kk个主成分。

对于mxnmxn实矩阵AA,假设其秩为rr,0<k<r0<k<r,则可以将矩阵解AA进行截断奇异值分解

AUkΣkVkTA \approx U_{k} \Sigma_{k} V_{k}^{\mathrm{T}}

式中UkU_{k}m×km \times k矩阵,VkV_{k}n×kn \times k矩阵,k\sum_{k}kk阶对角矩阵;Uk,VkU_{k}, V_{k}分别由取AA的完全奇异值分解的矩阵U,VU, V的前kk列,k\sum_{k}由取AA的完全奇异值分解的矩阵\sum的前kk个对角线元素得到。

定义一个新的n×mn \times m矩阵XX^{\prime}

X=1n1XTX^{\prime}=\frac{1}{\sqrt{n-1}} X^{\mathrm{T}}

XX^{\prime}的每一列均值为零。不难得知,

XTX=(1n1XT)T(1n1XT)=1n1XXT\begin{aligned} X^{\prime \mathrm{T}} X^{\prime} &=\left(\frac{1}{\sqrt{n-1}} X^{\mathrm{T}}\right)^{\mathrm{T}}\left(\frac{1}{\sqrt{n-1}} X^{\mathrm{T}}\right) \\ &=\frac{1}{n-1} X X^{\mathrm{T}} \end{aligned}

XTXX^{\prime \mathrm{T}} X^{\prime}等于XX的协方差矩阵SXS_{X}

主成分分析归结于求协方差矩阵SXS_{X}的特征值和对应的单位特征向量,所以问题转化为求矩阵=XTX=X^{\prime} \mathbf{T} X^{\prime}的特征值和对应的单位特征向量。

假设XX^{\prime}的截断奇异值分解为X=UΣVTX^{\prime}=U \Sigma V^{\mathrm{T}},那么VV的列向量就是SX=XTXS_{X}=X^{\prime} \mathbf{T}_{X^{\prime}}的单位特征向量。因此,VV的列向量就是XX的主成分。于是,求XX主成分可以通过求XX^{\prime}的奇异值分解来实现。具体算法如下。
主成分分析算法:

输入:mxnmxn样本矩阵XX,其每一-行元素的均值为零;
输出:kxnkxn样本主成分矩阵YY
参数:主成分个数kk

  1. 构造新的n×mn \times m矩阵:

X=1n1XTX^{\prime}=\frac{1}{\sqrt{n-1}} X^{\mathrm{T}}

XX^{\prime}每一列的均值为零。

  1. 对矩阵XX^{\prime}进行截断奇异值分解,得到:

X=UΣVTX^{\prime}=U \Sigma V^{\mathrm{T}}

kk个奇异值、奇异向量。矩阵VV的前kk列构成kk个样本主成分。

  1. kxnkxn样本主成分矩阵

Y=VTXY=V^{\mathrm{T}} X

主成分分析(《机器学习》)

主成分分析(Principal Component Analysis,简称 PCA)是最常用的一种降维方法。在介绍 PCA 之前,不妨先考虑这样一个问题:对于正交属性空间中的样本点,如何用一个超平面(直线的高维推广)对所有样本进行恰当的表达?

容易想到,若存在这样的超平面,那么它大概应具有这样的性质:

  1. 最近重构性:样本点到这个超平面的距离都足够近;
  2. 最大可分性:样本点在这个超平面上的投影能尽可能分开。

有趣的是,基于最近重构性和最大可分性,能分别得到主成分分析的两种等价推导。我们先从最近重构性来推导。

假定数据样本进行了中心化,即ixi=0\sum_{i} \boldsymbol{x}_{i}=\mathbf{0}; 再假定投影变换后得到的新坐标系为{w1,w2,,wd}\left\{\boldsymbol{w}_{1}, \boldsymbol{w}_{2}, \dots, \boldsymbol{w}_{d}\right\},其中Ui\boldsymbol{U}_{i}是标准正交基向量,wi2=1\left\|\boldsymbol{w}_{i}\right\|_{2}=1,wiTwj=0\boldsymbol{w}_{i}^{\mathrm{T}} \boldsymbol{w}_{j}=0。若丢弃新坐标系中的部分坐标,即将维度降低到d<dd^{\prime}<d,则样本点xi\boldsymbol{x}_{i}在低维坐标系中的投影是zi=(zi1;zi2;;zid)\boldsymbol{z}_{i}=\left(z_{i 1} ; z_{i 2} ; \ldots ; z_{i d^{\prime}}\right),其中zij=wjTxiz_{i j}=\boldsymbol{w}_{j}^{\mathrm{T}} \boldsymbol{x}_{i}xi\boldsymbol{x}_{i}在低维坐标系下第jj维的坐标。若基于ziz_{i}来重构 xi\boldsymbol{x}_{i},则会得到x^i=j=1dzijwj\hat{\boldsymbol{x}}_{i}=\sum_{j=1}^{d^{\prime}} z_{i j} \boldsymbol{w}_{j}.

考虑整个训练集,原样本点xi\boldsymbol{x}_{i}与基于投影重构的样本点x^i\hat{\boldsymbol{x}}_{i}之间的距离为:

i=1mj=1dzijwjxi22=i=1mziTzi2i=1mziTWTxi+const\sum_{i=1}^{m}\left\|\sum_{j=1}^{d^{\prime}} z_{i j} \boldsymbol{w}_{j}-\boldsymbol{x}_{i}\right\|_{2}^{2}=\sum_{i=1}^{m} \boldsymbol{z}_{i}^{\mathrm{T}} \boldsymbol{z}_{i}-2 \sum_{i=1}^{m} \boldsymbol{z}_{i}^{\mathrm{T}} \mathbf{W}^{\mathrm{T}} \boldsymbol{x}_{i}+\mathrm{const}
tr(WT(i=1mxixiT)W)\propto-\operatorname{tr}\left(\mathbf{W}^{\mathrm{T}}\left(\sum_{i=1}^{m} \boldsymbol{x}_{i} \boldsymbol{x}_{i}^{\mathrm{T}}\right) \mathbf{W}\right)

根据最近重构性,上式应被最小化,考虑到wj\boldsymbol{w}_{j}是标准正交基,ixixiT\sum_{i} \boldsymbol{x}_{i} \boldsymbol{x}_{i}^{\mathrm{T}}是协方差矩阵,有

minwtr(WTXXTW)\min _{\mathbf{w}}-\operatorname{tr}\left(\mathbf{W}^{\mathrm{T}} \mathbf{X} \mathbf{X}^{\mathrm{T}} \mathbf{W}\right)
s.t. WTW=I\mathbf{W}^{\mathrm{T}} \mathbf{W}=\mathbf{I}

这就是主成分分析的优化目标。

从最大可分性出发,能得到主成分分析的另一种解释。我们知道,样本点xi\boldsymbol{x}_{i}在新空间中超平面上的投影是WTxi\mathbf{W}^{\mathrm{T}} \boldsymbol{x}_{i},若所有样本点的投影能尽可能分开,则应该使投影后样本点的方差最大化,如图所示。

投影后样本点的方差是iWTxixiTW\sum_{i} \mathbf{W}^{\mathrm{T}} \boldsymbol{x}_{i} \boldsymbol{x}_{i}^{\mathrm{T}} \mathbf{W},于是优化目标可写为:

maxWtr(WTXXTW)\max _{\mathbf{W}} \operatorname{tr}\left(\mathbf{W}^{\mathrm{T}} \mathbf{X} \mathbf{X}^{\mathrm{T}} \mathbf{W}\right)
s.t. WTW=I\mathbf{W}^{\mathrm{T}} \mathbf{W}=\mathbf{I}

使用拉格朗日乘子法可得:

xxTW=λW\mathbf{x} \mathbf{x}^{\mathrm{T}} \mathbf{W}=\lambda \mathbf{W}

于是,只需对协方差矩阵XXT\mathbf{X X}^{\mathrm{T}}进行特征值分解,将求得的特征值排序:λ1λ2λd\lambda_{1} \geqslant \lambda_{2} \geqslant \ldots \geqslant \lambda_{d},再取前dd^{\prime}个特征值对应的特征向量构成 W=(w1\mathbf{W}=\left(\boldsymbol{w}_{1}\right.w2,,wd)\left.\boldsymbol{w}_{2}, \ldots, \boldsymbol{w}_{d^{\prime}}\right)。这就是主成分分析的解。PCA 算法描述如图所示。

实践中常通过对XX进行奇异值分解来代替协方差矩阵的特征值分解。

PCA也可看作是逐一选取方差最大方向,即先对协方差矩阵ixixiT\sum_{i} \boldsymbol{x}_{i} \boldsymbol{x}_{i}^{\mathrm{T}}做特征值分解,取最大特征值对应的特征向量w1\boldsymbol{w}_{1}; 再对ixixiTλ1w1w1T\sum_{i} \boldsymbol{x}_{i} \boldsymbol{x}_{i}^{\mathrm{T}}-\lambda_{1} \boldsymbol{w}_{1} \boldsymbol{w}_{1}^{\mathrm{T}}做特征值分解,取最大特征值对应的特征向量w2w_{2}...由WW各分量正交及i=1mxixiT=j=1dλjwjwjT\sum_{i=1}^{m} \boldsymbol{x}_{i} \boldsymbol{x}_{i}^{\mathrm{T}}=\sum_{j=1}^{d} \lambda_{j} \boldsymbol{w}_{j} \boldsymbol{w}_{j}^{\mathrm{T}}可知,上述逐一选取方差最大方向的做法与直接选取最大dd^{\prime}个特征值等价。

降维后低维空间的维数dd^{\prime}通常是由用户事先指定,或通过在dd^{\prime}值不同的低维空间中对kk近邻分类器(或其他开销较小的学习器)进行交叉验证来选取较好的dd^{\prime}值。对 PCA,还可从重构的角度设置一个重构阈值,例如 t= 95%,然后选取使下式成立的最小dd^{\prime}值:

i=1dλii=1dλit\frac{\sum_{i=1}^{d^{\prime}} \lambda_{i}}{\sum_{i=1}^{d} \lambda_{i}} \geqslant t

PCA 仅需保留WW与样本的均值向量即可通过简单的向量减法和矩阵-向量乘法将新样本投影至低维空间中。显然,低维空间与原始高维空间必有不同,因为对应于最小的ddd-d^{\prime}个特征值的特征向量被舍弃了,这是降维导致的结果。但舍弃这部分信息往往是必要的:一方面,舍弃这部分信息之后能使样本的采样密度增大,这正是降维的重要动机;另一方面,当数据受到噪声影响时,最小的特征值所对应的特征向量往往与噪声有关,将它们舍弃能在一定程度上起到去噪的效果。

线性判别分析(《机器学习》)

线性判别分析(Linear Discriminant Analysis,简称 LDA)是-种经典的线性学习方法。

LDA 的思想非常朴素:给定训练样例集,设法将样例投影到一条直线上,使得同类样例的投影点尽可能接近、异类样例的投影点尽可能远离;在对新样本进行分类时,将其投影到同样的这条直线上,再根据投影点的位置来确定新样本的类别。下图给出了一个二维示意图。

给定数据集D={(xi,yi)}i=1m,yi{0,1}D=\left\{\left(\boldsymbol{x}_{i}, y_{i}\right)\right\}_{i=1}^{m}, y_{i} \in\{0,1\},令Xi,μi,ΣiX_{i}, \boldsymbol{\mu}_{i}, \mathbf{\Sigma}_{i}分别表示第i{0,1}i \in\{0,1\}类示例的集合、均值向量、协方差矩阵。若将数据投影到直线w\boldsymbol{w}上,则两类样本的中心在直线上的投影分别为wTμ0\boldsymbol{w}^{\mathrm{T}} \boldsymbol{\mu}_{0}wTμ1\boldsymbol{w}^{\mathrm{T}} \boldsymbol{\mu}_{1},若将所有样本点都投影到直线w\boldsymbol{w}上,则两类样本的协方差分别为wTΣ0w\boldsymbol{w}^{\mathrm{T}} \boldsymbol{\Sigma}_{0} \boldsymbol{w}wTΣ1w\boldsymbol{w}^{\mathrm{T}} \boldsymbol{\Sigma}_{1} \boldsymbol{w}。由于直线是维空间,因此wTμ0,wTμ1,wTΣ0w\boldsymbol{w}^{\mathrm{T}} \boldsymbol{\mu}_{0}, \boldsymbol{w}^{\mathrm{T}} \boldsymbol{\mu}_{1}, \boldsymbol{w}^{\mathrm{T}} \boldsymbol{\Sigma}_{0} \boldsymbol{w}wTΣ1w\boldsymbol{w}^{\mathrm{T}} \boldsymbol{\Sigma}_{1} \boldsymbol{w}均为实数。

欲使同类样例的投影点尽可能接近,可以让同类样例投影点的协方差尽可能小,即wTΣ0w+wTΣ1w\boldsymbol{w}^{\mathrm{T}} \boldsymbol{\Sigma}_{0} \boldsymbol{w}+\boldsymbol{w}^{\mathrm{T}} \boldsymbol{\Sigma}_{1} \boldsymbol{w}尽可能小;而欲使异类样例的投影点尽可能远离,
可以让类中心之间的距离尽可能大,即wTμ0wTμ122\left\|\boldsymbol{w}^{\mathrm{T}} \boldsymbol{\mu}_{0}-\boldsymbol{w}^{\mathrm{T}} \boldsymbol{\mu}_{1}\right\|_{2}^{2}尽可能大。同时考虑二者,则可得到欲最大化的目标

J=wTμ0wTμ122wTΣ0w+wTΣ1w=wT(μ0μ1)(μ0μ1)TwwT(Σ0+Σ1)w\begin{aligned} J &=\frac{\left\|\boldsymbol{w}^{\mathrm{T}} \boldsymbol{\mu}_{0}-\boldsymbol{w}^{\mathrm{T}} \boldsymbol{\mu}_{1}\right\|_{2}^{2}}{\boldsymbol{w}^{\mathrm{T}} \boldsymbol{\Sigma}_{0} \boldsymbol{w}+\boldsymbol{w}^{\mathrm{T}} \boldsymbol{\Sigma}_{1} \boldsymbol{w}} \\ &=\frac{\boldsymbol{w}^{\mathrm{T}}\left(\boldsymbol{\mu}_{0}-\boldsymbol{\mu}_{1}\right)\left(\boldsymbol{\mu}_{0}-\boldsymbol{\mu}_{1}\right)^{\mathrm{T}} \boldsymbol{w}}{\boldsymbol{w}^{\mathrm{T}}\left(\boldsymbol{\Sigma}_{0}+\boldsymbol{\Sigma}_{1}\right) \boldsymbol{w}} \end{aligned}

定义“类内散度矩阵”(within-class scatter matrix):

Sw=Σ0+Σ1=xX0(xμ0)(xμ0)T+xX1(xμ1)(xμ1)T\begin{aligned} \mathbf{S}_{w} &=\mathbf{\Sigma}_{0}+\mathbf{\Sigma}_{1} \\ &=\sum_{\boldsymbol{x} \in X_{0}}\left(\boldsymbol{x}-\boldsymbol{\mu}_{0}\right)\left(\boldsymbol{x}-\boldsymbol{\mu}_{0}\right)^{\mathrm{T}}+\sum_{\boldsymbol{x} \in X_{1}}\left(\boldsymbol{x}-\boldsymbol{\mu}_{1}\right)\left(\boldsymbol{x}-\boldsymbol{\mu}_{1}\right)^{\mathrm{T}} \end{aligned}

以及“类间散度矩阵”(between class scatter matrix):

Sb=(μ0μ1)(μ0μ1)T\mathbf{S}_{b}=\left(\boldsymbol{\mu}_{0}-\boldsymbol{\mu}_{1}\right)\left(\boldsymbol{\mu}_{0}-\boldsymbol{\mu}_{1}\right)^{\mathrm{T}}

则有:

J=wTSbwwTSwwJ=\frac{\boldsymbol{w}^{\mathrm{T}} \mathbf{S}_{b} \boldsymbol{w}}{\boldsymbol{w}^{\mathrm{T}} \mathbf{S}_{w} \boldsymbol{w}}

这就是 LDA 欲最大化的目标,即Sb\mathbf{S}_{b}Sw\mathbf{S}_{w}的‘“广义瑞利熵”(generalizedRayleigh quotient).

如何确定ww呢?注意到分子和分母都是关于ww的二次项,因此解与ww的长度无关,只与其方向有关。不失一般性,令wTSww=1\boldsymbol{w}^{\mathrm{T}} \mathbf{S}_{w} \boldsymbol{w}=1, 则式等价于:

ww是一个解,则对于任意常数α,αw\alpha, \alpha \boldsymbol{w}也是式的解。

minwwTSbw s.t. wTSww=1\begin{array}{cl}\min _{\boldsymbol{w}} & -\boldsymbol{w}^{\mathrm{T}} \mathbf{S}_{b} \boldsymbol{w} \\ \text { s.t. } & \boldsymbol{w}^{\mathrm{T}} \mathbf{S}_{w} \boldsymbol{w}=1\end{array}

由拉格朗日乘子法,上式等价于

Sbw=λSww\mathbf{S}_{b} \boldsymbol{w}=\lambda \mathbf{S}_{w} \boldsymbol{w}

其中λ\lambda是拉格朗日乘子。注意到Sbw\mathbf{S}_{b} \boldsymbol{w}的方向恒为μ0μ1\boldsymbol{\mu}_{0}-\boldsymbol{\mu}_{1},不妨令:

Sbw=λ(μ0μ1)\mathbf{S}_{b} \boldsymbol{w}=\lambda\left(\boldsymbol{\mu}_{0}-\boldsymbol{\mu}_{1}\right)

得:

w=Sw1(μ0μ1)\boldsymbol{w}=\mathbf{S}_{w}^{-1}\left(\boldsymbol{\mu}_{0}-\boldsymbol{\mu}_{1}\right)

考虑到数值解的稳定性,在实践中通常是对Sw\mathbf{S}_{w}进行奇异值分解,即Sw=\mathbf{S}_{w}=UΣVT\mathbf{U} \boldsymbol{\Sigma} \mathbf{V}^{\mathrm{T}}这里Σ\mathbf{\Sigma}是一个实对角矩阵,其对角线上的元素是Sw\mathbf{S}_{w}的奇异值,然后再由Sw1=VΣ1UT\mathbf{S}_{w}^{-1}=\mathbf{V} \boldsymbol{\Sigma}^{-1} \mathbf{U}^{\mathrm{T}}得到Sw1\mathbf{S}_{w}^{-1}

值得一提的是,LDA 可从贝叶斯决策理论的角度来阐释,并可证明,当两类数据同先验、满足高斯分布且协方差相等时,LDA 可达到最优分类。

可以将 LDA 推广到多分类任务中。. 假定存在NN个类,且第ii类示例数为mim_{i}。我们先定义“全局散度矩阵”:

St=Sb+Sw=i=1m(xiμ)(xiμ)T\begin{aligned} \mathbf{S}_{t} &=\mathbf{S}_{b}+\mathbf{S}_{w} \\ &=\sum_{i=1}^{m}\left(\boldsymbol{x}_{i}-\boldsymbol{\mu}\right)\left(\boldsymbol{x}_{i}-\boldsymbol{\mu}\right)^{\mathrm{T}} \end{aligned}

其中μμ是所有示例的均值向量。将类内散度矩阵Sw\mathbf{S}_{w}重定义为每个类别的散度矩阵之和,即

Sw=i=1NSwi\mathbf{S}_{w}=\sum_{i=1}^{N} \mathbf{S}_{w_{i}}

其中

Swi=xXi(xμi)(xμi)T\mathbf{S}_{w_{i}}=\sum_{\boldsymbol{x} \in X_{i}}\left(\boldsymbol{x}-\boldsymbol{\mu}_{i}\right)\left(\boldsymbol{x}-\boldsymbol{\mu}_{i}\right)^{\mathrm{T}}

Sb=StSw=i=1Nmi(μiμ)(μiμ)T\begin{aligned} \mathbf{S}_{b} &=\mathbf{S}_{t}-\mathbf{S}_{w} \\ &=\sum_{i=1}^{N} m_{i}\left(\boldsymbol{\mu}_{i}-\boldsymbol{\mu}\right)\left(\boldsymbol{\mu}_{i}-\boldsymbol{\mu}\right)^{\mathrm{T}} \end{aligned}

显然,多分类 LDA 可以有多种实现方法:使用Sb,Sw,St\mathbf{S}_{b}, \mathbf{S}_{w}, \mathbf{S}_{t}三者中的任何两个即可。常见的一种实现是采用优化目标

maxWtr(WTSbW)tr(WTSwW)\max _{\mathbf{W}} \frac{\operatorname{tr}\left(\mathbf{W}^{\mathrm{T}} \mathbf{S}_{b} \mathbf{W}\right)}{\operatorname{tr}\left(\mathbf{W}^{\mathrm{T}} \mathbf{S}_{w} \mathbf{W}\right)}

其中WRd×(N1)\mathbf{W} \in \mathbb{R}^{d \times(N-1)}tr()\operatorname{tr}(\cdot)表示矩阵的迹(trace).可通过如下广义特征值问题求解:

SbW=λSwW\mathbf{S}_{b} \mathbf{W}=\lambda \mathbf{S}_{w} \mathbf{W}

W\mathbf{W}的闭式解则是Sw1Sb\mathbf{S}_{w}^{-1} \mathbf{S}_{b}N1N-1个最大广义特征值所对应的特征向量组成的矩阵。

若将WW视为一个投影矩阵,则多分类 LDA 将样本投影到N1N- 1维空间N1N- 1通常远小于数据原有的属性数。于是,可通过这个投影来减小样本点的维数,且投影过程中使用了类别信息,因此 LDA 也常被视为-一种经典的监督降维技术。