← 返回目录

Chapter 19: 典型相关分析

Canonical Correlation Analysis

找到两组数据的整体相关性的最大线性组合

📖 本章概要

典型相关分析(Canonical Correlation Analysis, CCA)用于探究两组变量之间的关系。 核心思想是将两组变量分别投影到新空间,使得投影后的两组变量尽可能相关。

19.1 CCA原理
线性组合、优化问题、随机变量
19.2 协方差矩阵
矩阵分块、P和Q计算
19.3 鸢尾花实例
花萼与花瓣的整体相关性

19.1 典型相关分析原理

🎯 核心思想

给定两组变量X (n×p) 和Y (n×q),CCA找到线性组合s₁=Xu₁和t₁=Yv₁, 使得corr(s₁, t₁)最大。这揭示了X和Y的"整体"关系,而非单个特征的关系。

优化目标:argmax corr(s₁, t₁) = argmax (uᵀ₁ΣXYv₁) / √(uᵀ₁ΣXXu₁)·√(vᵀ₁ΣYYv₁)

🔗

典型相关分析原理

最大化两组变量线性组合的相关性

CCA核心思想

数据矩阵 Xn × p(花萼: 长度、宽度)数据矩阵 Yn × q(花瓣: 长度、宽度)标准化标准化投影 s₁ = Xu₁n × 1花萼综合得分投影 t₁ = Yv₁n × 1花瓣综合得分最大化 corr(s₁, t₁)
投影向量 u₁

形状: p × 1

决定如何将X的p个特征线性组合成一维s₁。寻找u₁使得s₁与t₁相关性最大。

投影向量 v₁

形状: q × 1

决定如何将Y的q个特征线性组合成一维t₁。与u₁共同优化,最大化相关性。

💡 核心思想:CCA不是简单地看X和Y各个特征的相关性,而是找到X的最佳线性组合和Y的最佳线性组合, 使得这两个组合之间的相关性最大。这揭示了两组变量的"整体"关系,而非"个体"关系。

CCA vs PCA

PCA (主成分分析)
• 单组变量X
• 最大化方差var(s₁)
• 特征向量来自XᵀX
• 降维目的
CCA (典型相关分析)
• 两组变量X和Y
• 最大化相关性corr(s₁, t₁)
• 特征向量来自P和Q
• 关系挖掘

19.2 从协方差矩阵考虑

📐 矩阵分块与计算

[X, Y]的协方差矩阵可分为四个子块:ΣXX (X的协方差)、ΣYY (Y的协方差)、 ΣXY和ΣYX (互协方差)。通过这些子块构造P和Q矩阵,特征值分解即可得到u和v。

📊

协方差矩阵分块

[X, Y] 的协方差矩阵结构

步骤: 1 / 4
① 组合矩阵
② 识别分块
③ 四个子块
④ 方差协方差
组合数据矩阵 [X, Y]
将X (n×p) 和Y (n×q) 水平拼接成 [X, Y] (n×(p+q)),然后计算其协方差矩阵。

协方差矩阵可视化

Cov([X, Y])(p+q) × (p+q)pqpq

典型相关系数公式

📐
播放到公式步骤查看详细推导

🔑 关键洞察:协方差矩阵分块是CCA的理论基础。通过分块,我们可以分别关注X和Y的内部结构(ΣXX, ΣYY) 以及它们之间的关系(ΣXY, ΣYX)。CCA的优化问题本质上是在这四个子块上进行操作, 找到使得uᵀ₁ΣXYv₁最大的投影方向u₁和v₁。

P和Q矩阵计算

💡 关键公式:
P = Σ⁻¹ₓₓ ΣXY Σ⁻¹YY ΣYX (p×p)
Q = Σ⁻¹YY ΣYX Σ⁻¹ₓₓ ΣXY (q×q)
P和Q有相同的非零特征值!

🔢

P和Q矩阵计算过程

逐步矩阵相乘动画

步骤: 1 / 4
P = Σ⁻¹ₓₓ @ ΣXY @ Σ⁻¹YY @ ΣYX
步骤1: 准备协方差矩阵的四个分块

P矩阵计算流程

Σ⁻¹ₓₓp × p@ΣXYp × qΣ⁻¹YYq × q@ΣYXq × p
P矩阵 (p×p)

P = Σ⁻¹ₓₓ ΣXY Σ⁻¹YY ΣYX

对P进行特征值分解,得到的特征向量U包含投影方向u₁, u₂, ...

Q矩阵 (q×q)

Q = Σ⁻¹YY ΣYX Σ⁻¹ₓₓ ΣXY

对Q进行特征值分解,得到的特征向量V包含投影方向v₁, v₂, ...

🔍 关键发现:P和Q有相同的非零特征值!特征值的平方根就是典型相关系数ρ。 P的特征向量给出u₁, u₂, ...,Q的特征向量给出v₁, v₂, ...。 这样就找到了使得s₁=Xu₁和t₁=Yv₁相关性最大的投影方向。

特征值分解求解

💡 求解步骤:
1. 对P进行特征值分解:P = UΛU⁻¹,得到u₁, u₂, ...
2. 对Q进行特征值分解:Q = VΛV⁻¹,得到v₁, v₂, ...
3. 典型相关系数:ρᵢ = √λᵢ
4. 典型变量:sᵢ = Xuᵢ, tᵢ = Yvᵢ

🎯

特征值分解求解CCA

获得投影方向u和v

步骤: 1 / 3
P = U Λ_P U⁻¹
对P矩阵进行特征值分解

P矩阵特征值分解

P2 × 2特征值分解

特征值与典型相关系数

⏳
播放动画查看特征值分解结果

✨ 关键发现:P和Q的非零特征值相同!λ₁=0.89对应ρ₁=√0.89≈0.94,这就是第一对典型变量的相关系数。 λ₂=0.02对应ρ₂≈0.14,是第二对典型变量的相关系数。 特征向量U给出X的投影方向,V给出Y的投影方向。 通过s₁=Xu₁和t₁=Yv₁,我们将X和Y各自压缩成一维,且这两个一维变量的相关性最大。

数学推导总结

  1. 构造协方差矩阵[X, Y]的四个分块:ΣXX, ΣYY, ΣXY, ΣYX
  2. 计算P = Σ⁻¹ₓₓΣXYΣ⁻¹YYΣYX和Q = Σ⁻¹YYΣYXΣ⁻¹ₓₓΣXY
  3. 对P和Q分别进行特征值分解,得到U和V
  4. 特征值λ的平方根即为典型相关系数ρ
  5. 特征向量U的列给出X的投影方向u,V的列给出Y的投影方向v

19.3 以鸢尾花数据为例

🌸 花萼与花瓣的整体关系

将鸢尾花4个特征分为两组:X=花萼(长度、宽度),Y=花瓣(长度、宽度)。 CCA找到X的最佳组合s₁和Y的最佳组合t₁,使得corr(s₁, t₁)=0.94, 远超任何单一特征对的相关性(最大0.87)。

🌸

鸢尾花数据CCA分析

探索花萼与花瓣的整体相关性

鸢尾花4个特征的相关性系数矩阵

1.00-0.120.870.82-0.121.00-0.43-0.370.87-0.431.000.960.82-0.370.961.00SepallengthSepal lengthSepalwidthSepal widthPetallengthPetal lengthPetalwidthPetal width花萼 ΣXX花瓣 ΣYY花萼↔花瓣 ΣXY

📊 关键发现:花萼长度与花瓣长度的相关系数为0.87,是花萼和花瓣之间最强的单一特征相关性。 但CCA不满足于此,它寻找花萼(长度、宽度)的最佳组合与花瓣(长度、宽度)的最佳组合, 使得两个组合的相关性更高 (0.94)!

🌸 鸢尾花CCA总结:通过CCA,我们将花萼的2个特征和花瓣的2个特征各自压缩成1个综合得分(S₁和T₁), 这两个得分的相关性达到0.94,远超任何单一特征对。这揭示了花萼和花瓣的"整体"关系, 而非"局部"关系。这种整体关系对理解鸢尾花的生物学特征和品种分类都有重要意义。

CCA结果解读

  • 第一对典型变量:s₁和t₁的相关系数为0.94,揭示花萼和花瓣的强整体关系
  • 第二对典型变量:s₂和t₂的相关系数仅为0.12,几乎不相关
  • 投影向量u₁:[0.92, -0.39]ᵀ,花萼长度贡献最大
  • 投影向量v₁:[0.94, -0.33]ᵀ,花瓣长度贡献最大
  • 生物学意义:花萼和花瓣的整体大小高度相关,这对品种识别很重要

实践与应用

📦 Scikit-learn实现

# 导入库
from sklearn.cross_decomposition import CCA
# 创建CCA对象
cca = CCA(n_components=2)
# 拟合转换
cca.fit(X, Y)
S, T = cca.transform(X, Y)

参数说明:
• n_components: 典型变量对数
• 数据会自动标准化
• 返回S和T为典型变量

🎯 应用场景

✓
多模态数据分析:
图像与文本、音频与视频的关系
✓
生物医学:
基因表达与临床指标的相关性
✓
经济学:
宏观经济指标与微观企业数据
✓
神经科学:
脑电信号与行为数据的关联

📚 本章总结

核心概念

  • ✓ CCA寻找两组变量的最大相关线性组合
  • ✓ 典型变量:s=Xu, t=Yv
  • ✓ 典型相关系数:ρ = √λ
  • ✓ P和Q矩阵有相同的非零特征值
  • ✓ 最多找到min(p, q)对典型变量

关键公式

s₁ = Xu₁, t₁ = Yv₁
P = Σ⁻¹ₓₓΣXYΣ⁻¹YYΣYX
Q = Σ⁻¹YYΣYXΣ⁻¹ₓₓΣXY
P = UΛU⁻¹, Q = VΛV⁻¹
ρᵢ = √λᵢ

与其他方法的联系:CCA是降维算法家族的重要成员。与PCA、PCR、PLS、KPCA一起, 构成了从单变量到多变量、从线性到非线性的完整降维体系。 掌握这些方法的异同,对机器学习实践至关重要。