0%

第十六章 主成分分析

主成分分析(principal component analysis,PCA)是一种常用的无监督学习方法,这一方法利用正交变换把由线性相关变量表示的观测数据转换为少数几个由线性无关变量表示的数据,线性无关的变量称为主成分。

主成分的个数通常小于原始变量的个数,所以主成分分析属于降维方法。

主成分分析主要用于发现数据中的基本结构,即数据中变量之间的关系,是数据分析的有力工具,也用于其他机器学习方法的前处理。

16.1 总体主成分分析

16.1.1 基本想法

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

主成分分析中,首先对给定数据进行规范化,使得数据每一变量的平均值为0,方差为1。之后对数据进行正交变换,原来由线性相关变量表示的数据,通过正交变换变成若干个线性无关的新变量表示的数据。新变量是可能的正交变换中变量的方差的和(信息保存)最大的,方差表示在新变量上信息的大小。将新变量依次称为第一主成分、第二主成分等。

对原坐标系中的数据进行主成分分析等价于进行坐标系旋转变换,将数据投影到新坐标系的坐标轴上;新坐标系的第一坐标轴、第二坐标轴等分别表示第一主成分、第二主成分等,数据在每一轴上的坐标值的平方表示相应变量的方差;并且,这个坐标系是在所有可能的新的坐标系中,坐标轴上的方差的和最大的。

等价地,主成分分析在旋转变换中选取离样本点的距离平方和最小的轴,作为第一主成分。第二主成分等的选取,在保证与已选坐标轴正交的条件下,类似地进行。

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

16.1.2 定义和导出

假设x=(x1,x2,,xm)Tm维随机变量,其均值向量是μ

μ=E(x)=(μ1,μ2,...,μm)T

协方差矩阵是Σ

Σ=cov(x,x)=E[(xμ)(xμ)T]

考虑由m维随机变量xm维随机变量y=(y1,y2,,ym)T的线性变换

yi=αiTx=α1iTx1+α2iTx2+...+αmiTxm                    (16.1)

其中αiT=(α1i,α2i,,αmi),i=1,2,,m

由随机变量的性质可知,

E(yi)=αiTμ,     i=1,2,...,m                    (16.2)var(yi)=αiTΣαi                    (16.3)cov(yi,yj)=αiTΣαj,     i=1,2,...,m,     j=1,2,...,m                    (16.4)

定义 16.1(总体主成分) 给定一个如式(16.1)所示的线性变换,如果它们满足下列条件:

(1)系数向量αiT是单位向量,即αiTαi=1,i=1,2,,m

(2)变量yiyj互不相关,即cov(yi,yj)=0(ij)

(3)变量y1x的所有线性变换中方差最大的;y2是与y1不相关的x的所有线性变换中方差最大的;一般地,yi是与y1,y2,,yi1(i=1,2,,m)都不相关的x的所有线性变换中方差最大的;这时分别称y1,y2,,ymx的第一主成分、第二主成分、… 、第m主成分。

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

αiTαj={0,   ij1   i=j

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

α1Tx=i=1mαi1xi

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

α2Tx=i=1mαi2xi

中,在α2Tα2=1条件下,求方差最大的,得到x的第二主成分;第k步,在与α1Tx,α2Tx,,αk1Tx不相关的x的所有线性变换

αkTx=i=1mαikxi

中,在αkTαk=1条件下,求方差最大的,得到x的第k主成分;如此继续下去,直到得到x的第m主成分。

16.1.3 主要性质

定理 16.1xm维随机变量,Σx的协方差矩阵,Σ的特征值分别是λ1λ2λm0,特征值对应的单位特征向量分别是α1,α2,,αm,则x的第k主成分是

yk=αkTx=α1kTx1+α2kTx2+...+αmkTxm                    (16.5)

x的第k主成分的方差是

var(yk)=αkTΣαk=λk,     k=1,2,...,m                    (16.6)

即协方差矩阵Σ的第k个特征值。


推论 16.1 m维随机变量y=(y1,y2,,ym)T的分量依次是x的第一主成分到第m主成分的充要条件是:

(1)y=ATxA为正交矩阵

A=[α11α12...α1mα21α22...α2m.........αm1αm2...αmm]

(2)y的协方差矩阵为对角矩阵

cov(y)=diag(λ1,λ2,...,λm)λ1λ2...λm

其中λkΣ的第k个特征值,αk是对应的单位特征向量,k=1,2,,m


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

(1)总体主成分y的协方差矩阵是对角矩阵

cov(y)=Λ=diag(λ1,λ2,...,λm)                    (16.17)

(2)总体主成分y的方差之和等于随机变量x的方差之和,即

i=1mλi=i=1mσii                    (16.18)

其中σii是随机变量xi的方差,即协方差矩阵Σ的对角元素。

(3)第k个主成分yk与变量xi的相关系数ρ(yk,xi)称为因子负荷量(factor loading),它表示第k个主成分yk与变量xi的相关关系。计算公式是

ρ(yk,xi)=λkαikσii,     k,i=1,2,...,m                    (16.20)

(4)第k个主成分ykm个变量的因子负荷量满足

i=1mσiiρ2(yk,xi)=1                    (16.22)

16.1.4 主成分的个数

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

定理 16.2 对任意正整数q1qm,考虑正交线性变换

y=BTx                    (16.23)

其中yq维向量,BTq×m矩阵,令y的协方差矩阵为

Σy=BTΣB                    (16.24)

Σy的迹tr(Σy)B=Aq时取得最大值,其中矩阵Aq由正交矩阵Aq组成。

定理16.2表明,当x的线性变换yB=Aq时,其协方差矩阵Σy的迹tr(Σy)取得最大值,这就是说,当取A的前q列取x的前q个主成分时,能够最大限度地保留原有变量方差的信息。


定理16.3 考虑正交变换

y=BTx

这里BTp×m矩阵,AΣy的定义与定理16.2相同,则tr(Σy)B=Ap时取得最小值,其中矩阵ApAp组成。

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


定义 16.2k主成分yk的方差贡献率定义为yk的方差与所有方差之和的比,记作ηk

ηk=λki=1mλi                    (16.30)

k个主成分y1,y2,,yk的累计方差贡献率定义为k个方差之和与所有方差之和的比

i=1kηi=i=1kλii=1mλi                    (16.31)

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


定义 16.3 k个主成分y1,y2,,yk对原有变量xi的贡献率定义为xi(y1,y2,,yk)的相关系数的平方,记作νi

νi=ρ2(xi,(y1,y2,...,yk))

计算公式如下:

νi=ρ2(xi,(y1,y2,...,yk))=j=1kρ2(xi,yj)=j=1kλjαij2σii                    (16.32)

16.1.5 规范化变量的总体主成分

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

x=(x1,x2,,xm)Tm维随机变量,xi为第i个随机变量,i=1,2,,m,令

xi=xiE(xi)var(xi),     i=1,2,...,m                    (16.33)

其中E(xi),var(xi)分别是随机变量xi的均值和方差,这时xi就是xi的规范化随机变量。

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

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

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

Λ=diag(λ1,λ2,...,λm)                    (16.34)

其中$\lambda_1^\geq \lambda_2^\geq…\geq\lambda_m^*\geq0R$的特征值。

(2)协方差矩阵的特征值之和为m

k=1mλk=m                    (16.35)

(3)规范化随机变量$x_i^y_k^$的相关系数(因子负荷量)为

ρ(yk,xi)=λkeik     k,i=1,2,...,m                    (16.36)

其中$e_k^ = (e_{1k}^,e_{2k}^,…,e_{mk}^)^TR\lambda_k^*$的单位特征向量。

(4)所有规范化随机变量$x_i^y_k^\lambda_k^*$

i=1mρ2(yk,xi)=i=1mλkeik2=λk,     k=1,2,...,m                    (16.37)

(5)规范化随机变量$x_i^y_k^$的相关系数的平方和等于1

k=1mρ2(yk,xi)=k=1mλkeik2=1,     i=1,2,...,m                    (16.38)

16.2 样本主成分分析

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

16.2.1 样本主成分的定义和性质

定义 16.4(样本主成分) 给定样本矩阵X。样本第一主成分y1=a1Tx是在a1Ta1=1条件下,使得a1Txj(j=1,2,,n)的样本方差a1TSa1最大的x的线性变换;样本第二主成分y2=a2Tx是在a2Ta2=1a2Txja1Txj(j=1,2,,n)的样本协方差a1TSa2=0条件下,使得a2Txj(j=1,2,,n)的样本方差a2TSa2最大的x的线性变换;一般地,样本第i主成分yi=aiTx是在aiTai=1aiTxjakTxj(k<i,j=1,2,,n)的样本协方差akTSai=0条件下,使得aiTxj(j=1,2,,n)的样本方差aiTSai最大的x的线性变换。

样本主成分与总体主成分具有同样的性质。只要以样本协方差矩阵S代替总体协方差矩阵Σ即可。总体主成分定理16.2及定理16.3对样本主成分依然成立。

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

xij=xijx¯isii,     i=1,2,...,m;     j=1,2,...,n                    (16.48)

其中

x¯i=1nj=1nxij,     i=1,2,...,msii=1n1j=1n(xijx¯i)2,     i=1,2,...,m

样本协方差矩阵S就是样本相关矩阵R

R=1n1XXT                    (16.49)

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

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

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

(1)对观测数据按式(16.48)进行规范化处理,得到规范化数据矩阵,仍以X表示。

(2)依据规范化数据矩阵,计算样本相关矩阵R

R=[rij]m×m=1n1XXT

其中

rij=1n1t=1nxilxlj,     i,j=1,2,...,m

(3)求样本相关矩阵Rk个特征值和对应的k个单位特征向量。

求解R的特征方程

|RλI|=0

Rm个特征值

λ1λ2...λm

求方差贡献率i=1kηi达到预定值的主成分个数k

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

ai=(a1i,a2i,...,ami),     i=1,2,...,k

(4)求k个样本主成分

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

yi=aiTx,     i=1,2,...,k                    (16.50)

(5)计算k个主成分yj与原变量xi的相关系数ρ(xi,yj),以及k个主成分对原变量xi的贡献率νi

(6)计算n个样本的k个主成分值

将规范化样本数据代入k个主成分式(16.50),得到n个样本的主成分值。第j个样本xj=(x1j,x2j,,xmj)T的第i主成分值是

yij=(a1i,a2i,...,ami)(x1j,x2j,...,xmj)T=l=1malixlji=1,2,...m,     j=1,2,...,n

主成分分析得到的结果可以用于其他机器学习方法的输入。

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

给定样本矩阵X,利用数据矩阵奇异值分解进行主成分分析。

算法 16.1(主成分分析算法)

输入m×n样本矩阵X,其每一行元素的均值为零;

输出k×n样本主成分矩阵Y

参数:主成分个数k

(1)构造新的n×m矩阵

X=1n1XT

X的每一列的均值为零。

(2)对矩阵X进行截断奇异值分解,得到

X=UΣVT

k个奇异值、奇异向量。矩阵VTX的乘积构成样本主成分矩阵。

(3)求k×n样本主成分矩阵

Y=VTX
Powered By Valine
v1.5.2