📖 本章概要
典型相关分析(Canonical Correlation Analysis, CCA)用于探究两组变量之间的关系。 核心思想是将两组变量分别投影到新空间,使得投影后的两组变量尽可能相关。
线性组合、优化问题、随机变量
矩阵分块、P和Q计算
花萼与花瓣的整体相关性
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核心思想
投影向量 u₁
形状: p × 1
决定如何将X的p个特征线性组合成一维s₁。寻找u₁使得s₁与t₁相关性最大。
投影向量 v₁
形状: q × 1
决定如何将Y的q个特征线性组合成一维t₁。与u₁共同优化,最大化相关性。
💡 核心思想:CCA不是简单地看X和Y各个特征的相关性,而是找到X的最佳线性组合和Y的最佳线性组合, 使得这两个组合之间的相关性最大。这揭示了两组变量的"整体"关系,而非"个体"关系。
CCA vs PCA
• 单组变量X
• 最大化方差var(s₁)
• 特征向量来自XᵀX
• 降维目的
• 两组变量X和Y
• 最大化相关性corr(s₁, t₁)
• 特征向量来自P和Q
• 关系挖掘
19.2 从协方差矩阵考虑
📐 矩阵分块与计算
[X, Y]的协方差矩阵可分为四个子块:ΣXX (X的协方差)、ΣYY (Y的协方差)、 ΣXY和ΣYX (互协方差)。通过这些子块构造P和Q矩阵,特征值分解即可得到u和v。
协方差矩阵分块
[X, Y] 的协方差矩阵结构
协方差矩阵可视化
典型相关系数公式
🔑 关键洞察:协方差矩阵分块是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矩阵计算过程
逐步矩阵相乘动画
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
P矩阵特征值分解
特征值与典型相关系数
✨ 关键发现:P和Q的非零特征值相同!λ₁=0.89对应ρ₁=√0.89≈0.94,这就是第一对典型变量的相关系数。 λ₂=0.02对应ρ₂≈0.14,是第二对典型变量的相关系数。 特征向量U给出X的投影方向,V给出Y的投影方向。 通过s₁=Xu₁和t₁=Yv₁,我们将X和Y各自压缩成一维,且这两个一维变量的相关性最大。
数学推导总结
- 构造协方差矩阵[X, Y]的四个分块:ΣXX, ΣYY, ΣXY, ΣYX
- 计算P = Σ⁻¹ₓₓΣXYΣ⁻¹YYΣYX和Q = Σ⁻¹YYΣYXΣ⁻¹ₓₓΣXY
- 对P和Q分别进行特征值分解,得到U和V
- 特征值λ的平方根即为典型相关系数ρ
- 特征向量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个特征的相关性系数矩阵
📊 关键发现:花萼长度与花瓣长度的相关系数为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实现
参数说明:
• n_components: 典型变量对数
• 数据会自动标准化
• 返回S和T为典型变量
🎯 应用场景
图像与文本、音频与视频的关系
基因表达与临床指标的相关性
宏观经济指标与微观企业数据
脑电信号与行为数据的关联
📚 本章总结
核心概念
- ✓ CCA寻找两组变量的最大相关线性组合
- ✓ 典型变量:s=Xu, t=Yv
- ✓ 典型相关系数:ρ = √λ
- ✓ P和Q矩阵有相同的非零特征值
- ✓ 最多找到min(p, q)对典型变量
关键公式
与其他方法的联系:CCA是降维算法家族的重要成员。与PCA、PCR、PLS、KPCA一起, 构成了从单变量到多变量、从线性到非线性的完整降维体系。 掌握这些方法的异同,对机器学习实践至关重要。