主成分分析(PCA)之去相关思路

23 篇文章 0 订阅
4 篇文章 0 订阅
预备知识

1、 x ∈ R d × 1 \boldsymbol x\in\R^{d\times 1} xRd×1为随机变量, x = [ x 1 , x 2 , . . . , x d ] T \boldsymbol x=[x^1,x^2,...,x^d]^T x=[x1,x2,...,xd]T E [ x ] = 0 E[\boldsymbol x]=\boldsymbol 0 E[x]=0
协方差:
V a r [ x ] = [ c o v ( x 1 , x 1 ) c o v ( x 1 , x 2 ) . . . c o v ( x 1 , x d ) c o v ( x 2 , x 1 ) c o v ( x 2 , x 2 ) . . . c o v ( x 2 , x d ) c o v ( x d , x 1 ) c o v ( x d , x 2 ) . . . c o v ( x d , x d ) ] = E [ x 1 x 1 x 1 x 2 . . . x 1 x d x 2 x 1 x 2 x 2 . . . x 2 x d x d x 1 x d x 2 . . . x d x d ] = E [ x x T ] = 1 n ∑ i = 1 n ( x i x i T ) = [ x 1 , x 2 , . . . x n ] [ x 1 , x 2 , . . . x n ] T = X X T Var[\boldsymbol x] = \begin{bmatrix} cov(x^{1},x^{1}) & cov(x^{1},x^{2}) &...&cov(x^{1},x^{d})\\ cov(x^{2},x^{1}) & cov(x^{2},x^{2}) &...&cov(x^{2},x^{d}) \\ cov(x^{d},x^{1}) & cov(x^{d},x^{2}) &...&cov(x^{d},x^{d}) \end{bmatrix}=E \begin{bmatrix} x^{1}x^{1} & x^{1}x^{2} &...&x^{1}x^{d}\\ x^{2}x^{1} & x^{2}x^{2} &...&x^{2}x^{d} \\ x^{d}x^{1} & x^{d}x^{2} &...&x^{d}x^{d} \end{bmatrix} =E[\boldsymbol x\boldsymbol x^T]\\ =\frac{1}{n}\sum\limits_{i=1}^n(\boldsymbol x_i\boldsymbol x_i^T) =[\boldsymbol x_1,\boldsymbol x_2,...\boldsymbol x_n][\boldsymbol x_1,\boldsymbol x_2,...\boldsymbol x_n]^T =XX^T Var[x]=cov(x1,x1)cov(x2,x1)cov(xd,x1)cov(x1,x2)cov(x2,x2)cov(xd,x2).........cov(x1,xd)cov(x2,xd)cov(xd,xd)=Ex1x1x2x1xdx1x1x2x2x2xdx2.........x1xdx2xdxdxd=E[xxT]=n1i=1n(xixiT)=[x1,x2,...xn][x1,x2,...xn]T=XXT
2、 c \boldsymbol c c为常数,则 V a r [ x + c ] = V a r [ x ] Var[\boldsymbol x+\boldsymbol c]=Var[\boldsymbol x] Var[x+c]=Var[x]
推论: V a r [ x − E [ x ] ] = V a r [ x ] Var[\boldsymbol x-E[\boldsymbol x]]=Var[\boldsymbol x] Var[xE[x]]=Var[x]
3、 z = W x \boldsymbol z=W \boldsymbol x z=Wx, 则:
V a r [ z ] = W V a r [ x ] W T Var[\boldsymbol z]=WVar[\boldsymbol x]W^T Var[z]=WVar[x]WT

问题:

假设存在样本集 { x i } i = 1 n \{\boldsymbol x_i\}_{i=1}^n {xi}i=1n x i ∈ R d × 1 \boldsymbol x_i\in\R^{d\times 1} xiRd×1,我们想对 { x i } i = 1 n \{\boldsymbol x_i\}_{i=1}^n {xi}i=1n进行降维表示,并保留 { x i } i = 1 n \{\boldsymbol x_i\}_{i=1}^n {xi}i=1n的主要信息。

思路:

去相关方法的直观思路,如果存在高度相关的维度,则只取其中一个即可。由于变量 x \boldsymbol x x的平移不影响变量 x \boldsymbol x x的协方差,因此假设我们已经将 { x i } i = 1 n \{\boldsymbol x_i\}_{i=1}^n {xi}i=1n中心化,即所有样本已经减去其均值,则 E [ x ] = 0 E[\boldsymbol x]=\boldsymbol 0 E[x]=0

但是计算完 x i \boldsymbol x_i xi的协方差矩阵 V a r [ x ] = X X T Var[\boldsymbol x]=XX^T Var[x]=XXT,可以看到相关性非常复杂,很难判断去掉哪一个维度。可以想象,理想情况下,如果协方差矩阵是对角矩阵,则各个维度都不相关,此时方差比较大的维度包含了更多的信息(变化),然后留下方差大的维度即可。

因此可以考虑旋转坐标系,使得数据在新坐标系下,各个坐标轴变量不相关(几何解释就是,已知一个坐标变量,其它坐标变量完全不可预测,呈随机分布)。因此相当于找一个新的规范正交基,使得数据在新规范正交基上的表示(分解,投影),各个维度之间不相关。
因此可以考虑找到一个可逆变换 W ∈ R d × d W\in\R^{d\times d} WRd×d(或者说是规范正交基),使得
z = W x \boldsymbol z=W\boldsymbol x z=Wx
的协方差矩阵 V a r [ z ] Var[\boldsymbol z] Var[z]为对角矩阵。则
V a r [ z ] = W V a r [ x ] W T = W X X T W T Var[\boldsymbol z]= WVar[\boldsymbol x]W^T=WXX^T W^T Var[z]=WVar[x]WT=WXXTWT

则现在问题变为是否存在可逆变换 W ∈ R d × d W\in\R^{d\times d} WRd×d使得 X X T XX^T XXT可以被对角化。

由于 X X T XX^T XXT是对称矩阵,因此一定存在可逆变换 P P P使得 X X T XX^T XXT可以被对角化为 Λ \Lambda Λ( z z z的协方差矩阵)[矩阵简明教程,p28]:
Λ = P − 1 X X T P \Lambda=P^{-1}XX^TP Λ=P1XXTP
P P P X X T XX^T XXT d d d个线性无关特征列向量组成的矩阵。当特征列向量取正交特征向量时有 P T P = I P^TP=I PTP=I P − 1 = P T P^{-1}=P^T P1=PT
因此有 Λ = P T X X T P \Lambda =P^TXX^TP Λ=PTXXTP
W = P T W=P^T W=PT
因此需要求得 X X T XX^T XXT d d d个特征值,以及对应的 d d d个正交特征向量即可得到 W W W

需要注意的是这样的新坐标系或者说基 W W W有很多个,其中一个原因是由于基向量的顺序早成的,另外是由于不变子空间基可以任意取造成,还有一个原因是每个基向量,可以被其反方向替代。

而我们只关注信息量比较大的坐标轴或者基向量,也就是找方差比较大的坐标轴来表示原数据。而方差比较小的坐标轴,由于数据在其投影均值为0,因此可以舍弃。这样我们就完成了对原数据的降维近似表示。如果需要进一步压缩,比如用少量的 k k k个坐标轴也描述原数据,也就是保留 k k k个主成分,则取前 k k k大的特征值(方差)对应的正交特征向量(坐标轴,单位基)组成 P ′ = [ p 1 , p 2 , . . . , p k ] P'=[\boldsymbol p_1, \boldsymbol p_2,...,\boldsymbol p_k] P=[p1,p2,...,pk]
W ′ = P ′ T ∈ R k × d W'=P'T\in\R^{k\times d} W=PTRk×d。降维后 z ′ = W ′ x \boldsymbol z'=W'x z=Wx

注意:
从上述过程实际可以看出,PCA过程实际蕴含了 X T X^T XT(或 X X X)的奇异值分解过程, P P P就是 X T X^T XT(或 X X X)的右(或左)奇异特征向量。
X T X^T XT奇异值分解可以得到(任意矩阵(秩大于0)都可以进行奇异值分解):
X T = U D V T X^T=UDV^T XT=UDVT
其中 U U T = I ∈ R n × n UU^T=I\in\R^{n\times n} UUT=IRn×n V V T = I ∈ R d × d VV^T=I\in\R^{d\times d} VVT=IRd×d。假设 ( X T ) T X T ∈ R d × d (X^T)^TX^T\in\R^{d\times d} (XT)TXTRd×d d d d个特征向量为 { λ 1 ≥ λ 2 ≥ . . . ≥ λ d ≥ 0 } \{\lambda_1\geq \lambda_2\geq ...\geq \lambda_d\geq 0\} {λ1λ2...λd0},则 X T ∈ R d × n X^T\in\R^{d\times n} XTRd×n d d d个奇异值为 { λ 1 ≥ λ 2 ≥ . . . ≥ λ d ≥ 0 } \{\sqrt\lambda_1\geq \sqrt\lambda_2\geq ...\geq \sqrt\lambda_d\geq 0\} {λ 1λ 2...λ d0},(默认 d < n d<n d<n,如果 d > n d>n d>n,则 X T ∈ R d × n X^T\in\R^{d\times n} XTRd×n n n n个奇异值为 { λ 1 ≥ λ 2 ≥ . . . ≥ λ n ≥ 0 } \{\sqrt\lambda_1\geq \sqrt\lambda_2\geq ...\geq \sqrt\lambda_n\geq 0\} {λ 1λ 2...λ n0})。则 Λ = D i a g ( λ 1 , λ 2 , . . . , λ d ) \Lambda=Diag(\lambda_1,\lambda_2, ..., \lambda_d) Λ=Diag(λ1,λ2,...,λd) D = D i a g ( λ 1 , λ 2 , . . . , λ d ) 。 D=Diag(\sqrt\lambda_1,\sqrt\lambda_2, ..., \sqrt\lambda_d)。 D=Diag(λ 1,λ 2,...,λ d)
P = V P=V P=V。可以看到 X X T = V D T U T U D V T = V D 2 V T = V Λ V T 。 XX^T=VD^TU^TUDV^T=VD^2V^T=V\Lambda V^T。 XXT=VDTUTUDVT=VD2VT=VΛVT

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值