Canonical Correlation Analysis(CCA)典型相关分析也是一种常用的降维算法。我们知道,PCA(Principal Component Analysis) 主分量分析将数据从高维映射到低维空间同时,保证了数据的分散性尽可能地大, 也就是数据的方差或者协方差尽可能大。而LDA(Linear Discriminant Analysis) 线性判别分析则利用了类标签,利用一种监督学习的方法,将数据从高维空间映射到低维空间时,让不同类的数据尽可能地分开而同一类的数据尽可能地聚合。

但是,有的时候,我们想探讨多个线性空间之间的相关性。比如有的时候我们会从图像中提取各种特征,每一种特征都可以构成一个线性空间,为了分析这些空间之间的相关性,我们可以利用CCA 来做分析。

假设我们有两个特征空间,S1=x1∈Rd1, S2=x2∈Rd2, 我们可以将两个特征向量合并。

x=(x1x2)E(x)=(μ1μ2)Σ=(Σ11Σ21Σ12Σ22)

可以看到,Σ12=ΣT21,Σ 称为协方差矩阵。我们引入投影向量 a, b, 假设投影之后的变量满足:

u=aTx1v=bTx2

可以进一步算出 u,v 的方差和协方差:

var(u)=aTΣ11a,var(v)=bTΣ2b,cov(u,v)=aTΣ12b

可以计算出 u,v 的相关系数:

Corr(u,v)=cov(u,v)var(u)−−−−−√var(v)−−−−−√

将u,v的表达式代入,可以得到:

Corr(u,v)=aTΣ12baTΣ11a−−−−−−√bTΣ22b−−−−−−−√

我们的目标是让相关系数Corr(u,v) 尽可能地大。为了求解a,b, 可以固定分母而让分子最大化,所以上面的函数可以变成:

maxa,baTΣ12b
s.t.aTΣ11a=1,bTΣ22b=1

构造拉格朗日等式:

L=aTΣ12b−λ12(aTΣ11a−1)−λ22(bTΣ22b−1)

L 分别对a,b 求导,可以得到:

∂L∂a=Σ12b−λ1Σ11a=0
∂L∂b=Σ21a−λ2Σ22b=0

根据约束条件,可以得到:

λ1=λ2=aTΣ12b

所以只要求出 λ1 或者 λ2 就可以得到最大的相关系数。令 λ=λ1=λ2.

通过上面的偏导数,我们可以得到:

Σ−111Σ12b=λa
Σ−122Σ21a=λb

写成矩阵形式:

(Σ−11100Σ−122)(0Σ21Σ120)(ab)=λ(ab)

令:

B=(Σ1100Σ22),A=(0Σ21Σ120)w=(ab)

,

那么,上式可以表示成:

B−1Aw=λw

所以,λ 和 w 就是B−1A 的特征值和特征向量。我们可以求出 B−1A 的特征值和特征向量,然后利用特征向量将原来的特征

x1,x2做映射。对应特征值 λ 的求解,可以有更简单的方法,从上面的偏导数,我们可以得到如下等式:

Σ−111Σ12Σ−122Σ21a=λ2a

我们可以利用上面的表达式求出 λ 和 a,然后再待会上面的偏导数等式求出 b.

λ 就是 u,v的相关系数,u,v 就是一对典型变量(canonical variables)。按照 B−1A 的特征值从大到小排列,可以求出一系列的典型变量。特征值越大,说明典型变量的相关性越强。

参考来源:

http://www.cnblogs.com/jerrylead/archive/2011/06/20/2085491.html

https://en.wikipedia.org/wiki/Canonical_correlation

机器学习: Canonical Correlation Analysis 典型相关分析的更多相关文章

  1. Jordan Lecture Note-12: Kernel典型相关分析(Kernel Canonical Correlation Analysis, KCCA).

    Kernel典型相关分析 (一)KCCA 同样,我们可以引入Kernel函数,通过非线性的坐标变换达到之前CCA所寻求的目标.首先,假设映射$\Phi_X: x\rightarrow \Phi_X(x ...

  2. Jordan Lecture Note-11: 典型相关分析(Canonical Correlation Analysis, CCA).

    典型相关分析 (一)引入 典型相关分析(Canonical Correlation Analysis)是研究两组变量之间相关关系的一种多元统计方法.他能够揭示出两组变量之间的内在联系. 我们知道,在一 ...

  3. 经典相关分析,典型关分析, CCA,Canonical Correlation Analysis,多元变量分析,线性组合,相关系数最大化

    1.从概率论中相关系数推广而来 在概率论中,研究两个变量之间的线性相关情况时,提出了 相关系数 这个概念.做一下推广,如果研究一个变量和多个随机变量之间的线性相关关系时,提出了 全相关系数(或者复相关 ...

  4. 多视图学习利器----CCA(典型相关分析)及MATLAB实现

    Hello,我是你们人见人爱花见花开的小花.又和大家见面了,今天我们来聊一聊多视图学习利器------CCA. 一 典型相关分析的基本思想 当我们研究两个变量x和y之间的相关关系的时候,相关系数(相关 ...

  5. 典型相关分析CCA计算过程

      本文介绍了CCA解决的问题,CCA原理的推导过程,以及对计算结果物理意义的解释.并且通过SPSS和R操作演示了一个关于CCA的例子.数据文件下载参考[8],SPSS输出结果文件下载参考[9],R代 ...

  6. SPSS数据分析—典型相关分析

    我们已经知道,两个随机变量间的相关关系可以用简单相关系数表示,一个随机变量和多个随机变量的相关关系可以用复相关系数表示,而如果需要研究多个随机变量和多个随机变量间的相关关系,则需要使用典型相关分析. ...

  7. SPSS数据分析—基于最优尺度变换的典型相关分析

    传统的典型相关分析只能考虑变量之间的线性相关情况,且必须为连续变量,而我们依然可以使用最优尺度变换来拓展其应用范围,使其可以分析非线性相关.数据为分类数据等情况,并且不再仅限于两个变量间的分析, 虽然 ...

  8. R语言 典型相关分析

    1.关键点 #典型相关分析##典型相关分析是用于分析两组随机变量之间的相关程度的一种统计方法,它能够有效地揭示两组随机变量之间的相互(线性依赖)关系#例如 研究生入学考试成绩与本科阶段一些主要课程成绩 ...

  9. CCA(典型相关分析)

    https://www.cnblogs.com/pinard/p/6288716.html

随机推荐

  1. 老司机找bug的十年心路历程

    一.码畜:靠编译器帮自己查语法错误 消灭笔误:编写适合程序猿的键盘练习 if (常量==变量或表达式) 使用goto接力超长的if,switch 连续的if还是if elseif 多个条件的组合:精心 ...

  2. Linq查询满足条件记录集

    通过linq查询datatable数据集合满足条件的数据集 1.首先定义查询字段的变量,比方深度 string strDepth=查询深度的值: var dataRows = from datarow ...

  3. Kick the ball!(dfs)湖南省赛第十届

    Problem K: Kick the ball! Time Limit: 1 Sec  Memory Limit: 128 MB  Special Judge Submit: 109  Solved ...

  4. [LeetCode][Java] Best Time to Buy and Sell Stock IV

    题目: Say you have an array for which the ith element is the price of a given stock on day i. Design a ...

  5. Google架构学习

    http://hideto.iteye.com/blog/130815 原文:Google Architecture Google是伸缩性的王者.Google一直的目标就是构建高性能高伸缩性的基础组织 ...

  6. hdu 2842(矩阵高速幂+递推)

    题意:一个中国环的游戏,规则是一个木棒上有n个环.第一个环是能够任意放上或拆下的,剩下的环x假设想放上或拆下必须前一个环x-1是放上的且前x-2个环所有是拆下的,问n个环最少多少次操作能够所有拆掉. ...

  7. oracle数据库 操作clob对象

    clob类型,但对于这个类型处理起来还是比较麻烦的,varchar2长度为4000bytes,如果varchar2能满足楼主的需求,建议使用varchar2,下面提供了在Java 中读取clob类型的 ...

  8. maven的坑2

    导入工程后,pom.xml文件中以下插件报错: <plugin> <groupId>com.jayway.maven.plugins.android.generation2&l ...

  9. lnmp下 nginx 配置虚拟主机

    <一.参考> 这里以配置2个站点(2个域名)为例,n 个站点可以相应增加调整,假设: IP地址: 202.55.1.100 域名1 example1.com 放在 /www/example ...

  10. 对H.264帧类型判断方法

    背景描述 我们经常在网络直播推流或者客户端拉流的时候,需要对获取到的H.264视频帧进行判断后处理,我们经常获取到各种不同的视频数据0x67 0x68 0x65 0x61,0x27 0x28 0x25 ...