天天看点

典型相关分析原理(CCA)

 CCA典型相关分析

(canonical correlation analysis)利用综合变量对之间的相关关系来反映两组指标之间的整体相关性的多元统计分析方法。它的基本原理是:为了从总体上把握两组指标之间的相关关系,分别在两组变量中提取有代表性的两个综合变量U1和V1(分别为两个变量组中各变量的线性组合),利用这两个综合变量之间的相关关系来反映两组指标之间的整体相关性。

Canonical Correlation Analysis典范相关分析/Canonical Correspondence Analysis典范对应分析

简单相关系数描述两组变量的相关关系的缺点:只是孤立考虑单个X与单个Y间的相关,没有考虑X、Y变量组内部各变量间的相关。两组间有许多简单相关系数,使问题显得复杂,难以从整体描述。典型相关是简单相关、多重相关的推广。典型相关是研究两组变量之间相关性的一种统计分析方法。也是一种降维技术。

1936年,Hotelling提出典型相关分析。考虑两组变量的线性组合, 并研究它们之间的相关系数p(u,v).在所有的线性组合中, 找一对相关系数最大的线性组合, 用这个组合的单相关系数来表示两组变量的相关性, 叫做两组变量的典型相关系数, 而这两个线性组合叫做一对典型变量。在两组多变量的情形下, 需要用若干对典型变量才能完全反映出它们之间的相关性。下一步, 再在两组变量的与u1,v1不相关的线性组合中, 找一对相关系数最大的线性组合, 它就是第二对典型变量, 而且p(u2,v2)就是第二个典型相关系数。这样下去, 可以得到若干对典型变量, 从而提取出两组变量间的全部信息。

典型相关分析的实质就是在两组随机变量中选取若干个有代表性的综合指标(变量的线性组合), 用这些指标的相关关系来表示原来的两组变量的相关关系。这在两组变量的相关性分析中, 可以起到合理的简化变量的作用; 当典型相关系数足够大时, 可以像回归分析那样, 由- 组变量的数值预测另一组变量的线性组合的数值。

典型关联分析(Canonical Correlation Analysis)

1. 问题

在线性回归中,我们使用直线来拟合样本点,寻找n维特征向量X和输出结果(或者叫做label)Y之间的线性关系。其中

典型相关分析原理(CCA)

典型相关分析原理(CCA)

。然而当Y也是多维时,或者说Y也有多个特征时,我们希望分析出X和Y的关系。

当然我们仍然可以使用回归的方法来分析,做法如下:

假设

典型相关分析原理(CCA)

典型相关分析原理(CCA)

,那么可以建立等式Y=AX如下

典型相关分析原理(CCA)

其中

典型相关分析原理(CCA)

,形式和线性回归一样,需要训练m次得到m个

典型相关分析原理(CCA)

这样做的一个缺点是,Y中的每个特征都与X的所有特征关联,Y中的特征之间没有什么联系。

我们想换一种思路来看这个问题,如果将X和Y都看成整体,考察这两个整体之间的关系。我们将整体表示成X和Y各自特征间的线性组合,也就是考察

典型相关分析原理(CCA)

典型相关分析原理(CCA)

之间的关系。

这样的应用其实很多,举个简单的例子。我们想考察一个人解题能力X(解题速度

典型相关分析原理(CCA)

,解题正确率

典型相关分析原理(CCA)

)与他/她的阅读能力Y(阅读速度

典型相关分析原理(CCA)

,理解程度

典型相关分析原理(CCA)

)之间的关系,那么形式化为:

典型相关分析原理(CCA)

 和 

典型相关分析原理(CCA)

然后使用Pearson相关系数

典型相关分析原理(CCA)

来度量u和v的关系,我们期望寻求一组最优的解a和b,使得Corr(u, v)最大,这样得到的a和b就是使得u和v就有最大关联的权重。

到这里,基本上介绍了典型相关分析的目的。

2. CCA表示与求解

给定两组向量

典型相关分析原理(CCA)

典型相关分析原理(CCA)

(替换之前的x为

典型相关分析原理(CCA)

,y为

典型相关分析原理(CCA)

),

典型相关分析原理(CCA)

维度为

典型相关分析原理(CCA)

典型相关分析原理(CCA)

维度为

典型相关分析原理(CCA)

,默认

典型相关分析原理(CCA)

。形式化表示如下:

典型相关分析原理(CCA)
典型相关分析原理(CCA)

是x的协方差矩阵;左上角是

典型相关分析原理(CCA)

自己的协方差矩阵;右上角是

典型相关分析原理(CCA)

;左下角是

典型相关分析原理(CCA)

,也是

典型相关分析原理(CCA)

的转置;右下角是

典型相关分析原理(CCA)

的协方差矩阵。

与之前一样,我们从

典型相关分析原理(CCA)

典型相关分析原理(CCA)

的整体入手,定义

典型相关分析原理(CCA)
典型相关分析原理(CCA)

我们可以算出u和v的方差和协方差:

典型相关分析原理(CCA)
典型相关分析原理(CCA)
典型相关分析原理(CCA)

上面的结果其实很好算,推导一下第一个吧:

典型相关分析原理(CCA)

最后,我们需要算Corr(u,v)了

典型相关分析原理(CCA)

我们期望Corr(u,v)越大越好,关于Pearson相关系数,《数据挖掘导论》给出了一个很好的图来说明:

典型相关分析原理(CCA)

横轴是u,纵轴是v,这里我们期望通过调整a和b使得u和v的关系越像最后一个图越好。其实第一个图和最后一个图有联系的,我们可以调整a和b的符号,使得从第一个图变为最后一个。

接下来我们求解a和b。

回想在LDA中,也得到了类似Corr(u,v)的公式,我们在求解时固定了分母,来求分子(避免a和b同时扩大n倍仍然符号解条件的情况出现)。这里我们同样这么做。

这个优化问题的条件是:

Maximize 
典型相关分析原理(CCA)
Subject to: 
典型相关分析原理(CCA)

求解方法是构造Lagrangian等式,这里我简单推导如下:

典型相关分析原理(CCA)

求导,得

典型相关分析原理(CCA)
典型相关分析原理(CCA)

令导数为0后,得到方程组:

典型相关分析原理(CCA)
典型相关分析原理(CCA)

第一个等式左乘

典型相关分析原理(CCA)

,第二个左乘

典型相关分析原理(CCA)

,再根据

典型相关分析原理(CCA)

,得到

典型相关分析原理(CCA)

也就是说求出的

典型相关分析原理(CCA)

即是Corr(u,v),只需找最大

典型相关分析原理(CCA)

即可。

让我们把上面的方程组进一步简化,并写成矩阵形式,得到

典型相关分析原理(CCA)
典型相关分析原理(CCA)

写成矩阵形式

典型相关分析原理(CCA)

典型相关分析原理(CCA)

那么上式可以写作:

典型相关分析原理(CCA)

显然,又回到了求特征值的老路上了,只要求得

典型相关分析原理(CCA)

的最大特征值

典型相关分析原理(CCA)

,那么Corr(u,v)和a和b都可以求出。

在上面的推导过程中,我们假设了

典型相关分析原理(CCA)

典型相关分析原理(CCA)

均可逆。一般情况下都是可逆的,只有存在特征间线性相关时会出现不可逆的情况,在本文最后会提到不可逆的处理办法。

再次审视一下,如果直接去计算

典型相关分析原理(CCA)

的特征值,复杂度有点高。我们将第二个式子代入第一个,得

典型相关分析原理(CCA)

这样先对

典型相关分析原理(CCA)

求特征值

典型相关分析原理(CCA)

和特征向量

典型相关分析原理(CCA)

,然后根据第二个式子求得b。

待会举个例子说明求解过程。

假设按照上述过程,得到了

典型相关分析原理(CCA)

最大时的

典型相关分析原理(CCA)

典型相关分析原理(CCA)

。那么

典型相关分析原理(CCA)

典型相关分析原理(CCA)

称为典型变量(canonical variates),

典型相关分析原理(CCA)

即是u和v的相关系数。

最后,我们得到u和v的等式为:

典型相关分析原理(CCA)
典型相关分析原理(CCA)

我们也可以接着去寻找第二组典型变量对,其最优化条件是

Maximize 
典型相关分析原理(CCA)
Subject to: 
典型相关分析原理(CCA)
典型相关分析原理(CCA)

其实第二组约束条件就是

典型相关分析原理(CCA)

计算步骤同第一组计算方法,只不过是

典型相关分析原理(CCA)

典型相关分析原理(CCA)

的第二大特征值。

得到的

典型相关分析原理(CCA)

典型相关分析原理(CCA)

其实也满足

典型相关分析原理(CCA)

 即 

典型相关分析原理(CCA)

总结一下,i和j分别表示

典型相关分析原理(CCA)

典型相关分析原理(CCA)

得到结果

典型相关分析原理(CCA)
典型相关分析原理(CCA)

3. CCA计算例子

我们回到之前的评价一个人解题和其阅读能力的关系的例子。假设我们通过对样本计算协方差矩阵得到如下结果:

典型相关分析原理(CCA)
典型相关分析原理(CCA)

然后求

典型相关分析原理(CCA)

,得

典型相关分析原理(CCA)

这里的A和前面的

典型相关分析原理(CCA)

中的A不是一回事(这里符号有点乱,不好意思)。

然后对A求特征值和特征向量,得到

典型相关分析原理(CCA)

然后求b,之前我们说的方法是根据

典型相关分析原理(CCA)

求b,这里,我们也可以采用类似求a的方法来求b。

回想之前的等式

典型相关分析原理(CCA)
典型相关分析原理(CCA)

我们将上面的式子代入下面的,得

典型相关分析原理(CCA)

然后直接对

典型相关分析原理(CCA)

求特征向量即可,注意

典型相关分析原理(CCA)

典型相关分析原理(CCA)

的特征值相同,这个可以自己证明下。

不管使用哪种方法,

典型相关分析原理(CCA)
典型相关分析原理(CCA)

这里我们得到a和b的两组向量,到这还没完,我们需要让它们满足之前的约束条件

典型相关分析原理(CCA)

这里的

典型相关分析原理(CCA)

应该是我们之前得到的VecA中的列向量的m倍,我们只需要求得m,然后将VecA中的列向量乘以m即可。

典型相关分析原理(CCA)

这里的

典型相关分析原理(CCA)

是VecA的列向量。

典型相关分析原理(CCA)

因此最后的a和b为:

典型相关分析原理(CCA)

第一组典型变量为

典型相关分析原理(CCA)

相关系数

典型相关分析原理(CCA)

第二组典型变量为

典型相关分析原理(CCA)

相关系数

典型相关分析原理(CCA)

这里的

典型相关分析原理(CCA)

(解题速度),

典型相关分析原理(CCA)

(解题正确率),

典型相关分析原理(CCA)

(阅读速度),

典型相关分析原理(CCA)

(阅读理解程度)。他们前面的系数意思不是特征对单个u或v的贡献比重,而是从u和v整体关系看,当两者关系最密切时,特征计算时的权重。

继续阅读