典型关联分析(CCA)算法原理

来源:互联网 发布:知乎大脑的结构 编辑:程序博客网 时间:2024/06/05 03:23

典型关联分析(CCA)算法原理

1、问题的提出

我们知道,两个随机变量x、y之间的线性关系可以通过对这两个变量的N组样本对进行线性回归求得。但是,如果要求两组随机变量xy之间的线性关系,则可以用典型关联分析(Canonical correlation analysis)来求解。CCA是寻找两组变量对应的两个线性变换wx,wy(分别和xy的维数相等),使得通过线性变换后的两个组合变量(即wTxx,wTyy)之间的相关系数最大。

2、算法实现

假设两组随机变量有N个样本,把这N个样本都进行线性变换,得到以下两组数据:

Sxwx=(wTxx1,...,wTxxN)
Sywy=(wTyy1,...,wTyyN)

而CCA算法要做的就是最大化这两组数据之间的相关性,可以表示为下式:

ρ=maxwx,wycorr(Sxwx,Sywy)=maxwx,wySxwx,Sywy||Sxwx|||Sywy|,(注意:已默认两组数据均值为零)

通过数学推导(详见《canonical correlation analysis: an overview with application to learning methods》),
可以得到如下两个公式:

wy=C1yyCyxwxλ , (2.1)

CxyC1yyCyxwx=λ2Cxxwx ,(2.2)

因为协方差矩阵CxxCyy是对称正定的,所以可以进行完整的Choleskey分解如下:

Cxx=RxxRxx

ux=Rxxwx,代入2.2式可得:

R1xxCxyC1yyCyxR1xxux=λ2ux

这就是一个特征值求解问题Ax=λ2x 。求出的特征向量就是wx,代入2.1式可以求出wy,ρ=λ
得到以上结果后可算出SxwxSywy 这两组数据的具体值,并可画图观察线性关系。

0 0
原创粉丝点击