在处理单个高维数据时,通过可以通过LDA,PCA,等等方法进行降维处理,但是如果某两个数据来自同一个样本,但是数据类型不同,差距巨大时,怎么办呢?这个时候就是典型相关性分析(Canonical Correlation Analysis,CCA)的应用场景.CCA允许我们同时从两套数据分析.典型的应用场景就包括生物学上的联合分析,同一组样本,同时检测转录组和蛋白组,转录组和代谢组以及微生物代谢组等等,更详细的内容可参考 维基百科 .
CCA与PCA的联系与差别
CCA有点类似PCA(主成分分析,principal component analysis),它们都由同一个课题组提出,在降维方面(canonical variables)可以认为是多套数据的PCA.
不同之处是PCA旨在找出一套数据中能够表示最多方差的线性组合,而CCA旨在找出两套数据中能够最大程度表示其相关性的线性组合.
python实现CCA分析
那么在python中如何实现CCA分析呢? 在sklearn包中的cross_decomposition提供了CCA分析方法,直接调用即可,这里以企鹅数据为例
import pandas as pd import matplotlib.pyplot as plt import seaborn as sns import numpy as np filename = "penguins.csv" df = pd.read_csv(filename) df =df.dropna() df.head()
展示数据
species island bill_length_mm bill_depth_mm flipper_length_mm body_mass_g sex 0 Adelie Torgersen 39.1 18.7 181.0 3750.0 MALE 1 Adelie Torgerse