CCA是用来挖掘数据关联关系的算法之一,它的使用方法是将数据降维多维数据转化成为一维数据然后再利用相关系数进行相关性分析,相关性系数越靠近1,则它们的相关性越大,反之则越小。
算法思想
其基本思想和主成分分析非常相似。首先,在每组变量中寻找出变量的线性组合,使得两组的线性组合之间具有最大的相关系数;然后选取和已经挑选出的这对线性组合不相关的另一对线性组合,并使其相关系数最大,如此下去,直到两组变量的相关性被提取完毕为止。被选出的线性组合配对称为典型变量,它们的相关系数称为典型相关系数。
CCA降维的标准,是将选择的投影标准是降维到1维后,两组数据的相关系数最大。CCA算法的目标最终转化为一个凸优化过程,只要我们求出了这个优化目标的最大值,就是我们前面提到的多维X和Y的相关性度量,而对应的a,ba,b则为降维时的投影向量,或者说线性系数。这个函数优化一般有两种方法,第一种是奇异值分解SVD,第二种是特征分解,两者得到的结果一样。
CCA算法的SVD求解是要优化左右奇异向量。
CCA算法的特征分解求解是要优化拉格日朗日系数。
CCA算法流程
总结问题
什么是凸优化:主要做的就是优化问题,先初始化一下权重参数,然后利用优化方法来优化这个权重,直到准确率不再是上升,迭代停止。
什么是最小二乘法:主要用于数据拟合和参数估计。最小化观测值与模型预测值之间误差的平方和来寻找最佳函数匹配。