典型相关分析(CCA)

CCA是数据挖掘中重要的算法,可以挖掘出数据间的关联关系的算法。

基础知识

如何衡量两个变量之间的相关性呢?我们有相关系数,如下所示:

ρ(X,Y)=cov(X,Y)DXDYρ(X,Y)=cov(X,Y)DXDY

ρ(X,Y)ρ(X,Y)的绝对值越接近1,说明X与Y的线性相关性越高

ρ(X,Y)ρ(X,Y)的绝对值越接近0,说明X与Y的线性相关性越低

算法思想

CCA将多维数据X,YX,Y利用线性变换投影为1维的数据X,YX′,Y′,然后计算X,YX′,Y′的相关系数,进而得到二者的相关性。

那么我们的投影标准就是:

投影后,两组数据的相关系数最大。(这样我们就能挖掘出最相关的特征了。)

算法推导

假设投影向量分别为a,ba,b, 则投影后的数据为:

X=aTX,Y=bTYX′=aTX,Y′=bTY

则:

arga,bmaxρ(X,Y)=arga,bmaxcov(x,Y)DXDYarga,bmaxρ(X′,Y′)=arga,bmaxcov(x′,Y′)DX′DY′

假设我们的原始数据是标准化的,即均值为0,方差为1,则:

cov(X,Y)=cov(aTX,bTY)=aTE(XYT)bcov(X′,Y′)=cov(aTX,bTY)=aTE(XYT)b

DX=D(aTX)=aTDXa=aTE(XXT)aDX′=D(aTX)=aTDXa=aTE(XXT)a

DY=D(aTY)=aTDYa=aTE(YYT)aDY′=D(aTY)=aTDYa=aTE(YYT)a

因为均值为0,有:

DX=E(XXT),DY=E(YYT)DX=E(XXT),DY=E(YYT)

cov(X,Y)=E(XYT),cov(Y,X)=E(YXT)cov(X,Y)=E(XYT),cov(Y,X)=E(YXT)

SXY=cov(X,Y)SXY=cov(X,Y)

我们的问题就转化为:

arga,bmaxρ(X,Y)=arga,bmaxaTSXYbaTSXXabTSYYbarga,bmaxρ(X′,Y′)=arga,bmaxaTSXYbaTSXXabTSYYb

问题转化为:

arga,bmaxρ(X,Y)=arga,bmax aTSXYbarga,bmaxρ(X′,Y′)=arga,bmax aTSXYb

s.t.aTSXXa=1,bTSYYb=1s.t.aTSXXa=1,bTSYYb=1

则根据拉格朗日乘子法,有:

J(a,b)=aTSXYbλ0(aTSXXa1)λ1(bTSYYb1)J(a,b)=aTSXYb−λ0(aTSXXa−1)−λ1(bTSYYb−1)

求导有:

SXYb=λ0SXXaSXYb=λ0SXXa

SYXa=λ1SYYbSYXa=λ1SYYb

所以有:

aTSXYb=λ0aTSXXa=λ0aTSXYb=λ0aTSXXa=λ0

bTSYXa=λ1bTSYYb=λ1bTSYXa=λ1bTSYYb=λ1

所以有:

λ0=λT1=λ1=aTSXYb=λλ0=λ1T=λ1=aTSXYb=λ

可以推出:

S1XXSXYb=λaSXX−1SXYb=λa

S1YYSYXa=λbSYY−1SYXa=λb

因此有:

S1XXSXYS1YYSYXa=λ2aSXX−1SXYSYY−1SYXa=λ2a

对上面的式子进行特征值分解,那么特征值的平方根的最大值的特征向量就是我们求得的向量a

同理可以求得向量b

S1YYSYXS1XXSXYb=λ2bSYY−1SYXSXX−1SXYb=λ2b

基于SVD的推导

其实算法也可以通过svd分解的算法求得,如下所示:

arga,bmaxρ(X,Y)=arga,bmax aTSXYbarga,bmaxρ(X′,Y′)=arga,bmax aTSXYb

s.t.aTSXXa=1,bTSYYb=1s.t.aTSXXa=1,bTSYYb=1

令:

a=S12XXμ,b=S12YYva=SXX−12μ,b=SYY−12v

则问题转化为:

arga,bmaxρ(X,Y)=arga,bmax μTS12XXSXYTS12YYvarga,bmaxρ(X′,Y′)=arga,bmax μTSXX−12SXYTSYY−12v

s.t. μTμ=1,vTv=1s.t. μTμ=1,vTv=1

这里μ,vμ,v都是单位正交基。

令:

M=S12XXSXYTS12YYM=SXX−12SXYTSYY−12

对M进行奇异值分解,有:

M=UΣVTM=UΣVT

因此有:

μTMv=μTUΣVTv=σμvμTMv=μTUΣVTv=σμv

因为U,VU,V都是单位正交基矩阵, 且μ,vμ,v都是单位正交基。

所以有μTU,VTvμTU,VTv是只有一个标量值为1,其他值为0的向量。

所以σμvσμv只要是最大的奇异值即可。

因此问题转换为对M=S12XXSXYTS12YYM=SXX−12SXYTSYY−12做奇异值分解,得到U,VU,V,进而得到μ,vμ,v

进而得到:

a=S12XXμa=SXX−12μ

b=S12YYvb=SYY−12v

后记

我们看到CCA可以用作分析向量的相关性,一定意义上,也可以用作降维。

但是CCA最重要的一个应用还是特征融合,即根据两组特征找到相关性最大的特征,这样可以利用较好的特征来从较差的特征中进行进一步的特征抽取,提高分类效果。

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值