典型关联分析(CCA)算法原理
典型关联分析(CCA)算法原理
1、问题的提出
我们知道,两个随机变量x、y之间的线性关系可以通过对这两个变量的N组样本对进行线性回归求得。但是,如果要求两组随机变量x、y之间的线性关系,则可以用典型关联分析(Canonical correlation analysis)来求解。CCA是寻找两组变量对应的两个线性变换 wx,wy \textbf{w}_x,\textbf{w}_y(分别和x,y的维数相等),使得通过线性变换后的两个组合变量(即 wTxx,wTyy \textbf{w}_x^T\textbf{x},\textbf{w}_y^T\textbf{y})之间的相关系数最大。
2、算法实现
假设两组随机变量有N个样本,把这N个样本都进行线性变换,得到以下两组数据:
Sxwx=(wTxx1,...,wTxxN) S_{x}\textbf{w}_x = (\textbf{w}_x^T\textbf{x}_1,...,\textbf{w}_x^T\textbf{x}_N)
Sywy=(wTyy1,...,wTyyN) S_{y}\textbf{w}_y = (\textbf{w}_y^T\textbf{y}_1,...,\textbf{w}_y^T\textbf{y}_N)
而CCA算法要做的就是最大化这两组数据之间的相关性,可以表示为下式:
ρ=maxwx,wycorr(Sxwx,Sywy)=maxwx,wy⟨Sxwx,Sywy⟩||Sxwx||∣∣|Sywy∣∣| \rho = \operatorname*{max}\limits_{\textbf{w}_x,\textbf{w}_y} corr(S_{x}\textbf{w}_x,S_{y}\textbf{w}_y) = \operatorname*{max}\limits_{\textbf{w}_x,\textbf{w}_y}\frac{\langle S_{x}\textbf{w}_x,S_{y}\textbf{w}_y \rangle}{\left || S_{x}\textbf{w}_x \right || \left || S_{y}\textbf{w}_y \right ||},(注意:已默认两组数据均值为零)
通过数学推导(详见《canonical correlation analysis: an overview with application to learning methods》),
可以得到如下两个公式:
wy=C−1yyCyxwxλ \textbf{w}_y = \frac{C_{yy}^{-1}C_{yx}\textbf{w}_x}{\lambda} , (2.1)
CxyC−1yyCyxwx=λ2Cxxwx C_{xy}C_{yy}^{-1}C_{yx}\textbf{w}_x = \lambda^2C_{xx}\textbf{w}_x ,(2.2)
因为协方差矩阵 Cxx,Cyy C_{xx},C_{yy}是对称正定的,所以可以进行完整的Choleskey分解如下:
Cxx=Rxx⋅R′xx C_{xx} = R_{xx}\cdot R_{xx}'
令 ux=R′xx⋅wx \textbf{u}_x = R_{xx}'\cdot \textbf{w}_x,代入2.2式可得:
R−1xxCxyC−1yyCyxR−1xx′ux=λ2ux R_{xx}^{-1}C_{xy}C_{yy}^{-1}C_{yx}{R_{xx}^{-1}}'\textbf{u}_x = \lambda^2\textbf{u}_x
这就是一个特征值求解问题 Ax=λ2x A\textbf{x} = \lambda^2\textbf{x} 。求出的特征向量就是 wx \textbf{w}_x,代入2.1式可以求出 wy,而ρ=λ \textbf{w}_y,而\rho=\lambda。
得到以上结果后可算出 Sxwx,Sywy S_{x}\textbf{w}_x,S_{y}\textbf{w}_y 这两组数据的具体值,并可画图观察线性关系。
典型关联分析(CCA)算法原理相关推荐
- 典型关联分析CCA(canonical correlation analysis)
先看两个数学概念: 相关系数(参看百度百科) 相关系数是用以反映变量之间相关关系密切程度的统计指标.相关系数是按积差方法计算,同样以两变量与各自平均值的离差为基础,通过两个离差相乘来反映两变量之间相关 ...
- 典型相关分析(cca)原理_CCA典型关联分析原理与Python案例
文章来源于"脑机接口社区" CCA典型关联分析原理与Python案例mp.weixin.qq.com Rose今天分享一下CCA的相关原理以及Python应用,CCA在EEG等脑 ...
- 典型相关性分析(CCA)原理详细总结合集
典型相关性分析(CCA) 最近研究CCA相关的算法,从头原理入手 推荐以下两位大佬的Blog,希望对你有所帮助. 刘建平Pinard 网名为JerryLead的大佬 第一位大佬的Blog: 第二位大佬 ...
- 典型相关分析python实现_CCA典型关联分析原理与Python案例
文章来源于"脑机接口社区"CCA典型关联分析原理与Python案例mp.weixin.qq.com Rose今天分享一下CCA的相关原理以及Python应用,CCA在EEG等脑电 ...
- 交叉分解(Cross decomposition)、典型关联分析(Canonical Correlation Analysis,CCA)、偏最小二乘回归PLS
交叉分解(Cross decomposition).典型关联分析(Canonical Correlation Analysis,CCA).偏最小二乘回归PLS 目录 交叉分解.典型关联分析(Canon ...
- 机器学习(32)之典型相关性分析(CCA)详解 【文末有福利......】
微信公众号 关键字全网搜索最新排名 [机器学习算法]:排名第一 [机器学习]:排名第一 [Python]:排名第三 [算法]:排名第四 人工智能与Python公开课 限时免费 文末领取 前言 典型关联 ...
- 独立成分分析FastICA算法原理
独立成分分析FastICA算法原理 首先对于d维的随机变量x∈Rd×1\displaystyle \mathbf{x} \in R^{d\times 1}x∈Rd×1,我们假设他的产生过程是由相互独立 ...
- 核典型关联分析(KCCA)算法原理
Kernel Canonical Correlation Analysis 1.CCA的不足 普通的线性CCA只能探索两组随机变量之间的线性关系,而在实际情况中,变量间的关系往往是非线性的,于是非线性 ...
- 机器学习-关联之Apriori算法原理及实战
Apriori算法 前言 关联分析是一种无监督的机器学习方法,主要用于发现大规模数据集中事物之间的依存性和关联性.挖掘数据中隐藏的有价值的关系(如频繁项集.关联规则),有利于对相关事物进行预测,也能帮 ...
最新文章
- 团队需要Scrum Master做这六件事-Scrum中文网
- win服务器管理器“丢失”了怎么办?
- 彻底搞清楚浏览器渲染过程
- JAVA面向对象程序设计(第二版) 袁绍欣 第四章答案
- 工业级PoE交换机的分类知识详解
- 分披萨问题_比萨疯狂问题
- MySQL笔记-左连接的使用(left join有关联的多表查询)
- python解析格式文件
- JQuery的 serializeObject 序列化form表单
- 第三章:学生管理模块
- 江苏大学考研计算机录取率,报考数据分析—江苏大学
- (二)开源IT资产管理系统--OCS(win)客户端代理安装
- 【路由和交换之H3C自导自演】
- SpringBoot整合QueryDSL
- java如何通过拼音搜索功能_如何实现拼音搜索
- C#学习记录——C#项目开发实战:快递单打印精灵(一)
- 1972:【15NOIP普及组】推销员
- 初学cocoa开发:带你走入不一样的世界
- SILENTCAST是另一类UBUNTU最好的GIF视频录制器
- 网页应该如何录屏呢?