我刚开始在Matlab中使用CCA。我有两个向量X
和Y
维度60x1920
和60x1536
,其中样本数为60
,不同向量集中的变量为{{分别为1}}和1920
。我想知道做CCA将它们减少到子空间然后进行特征匹配。
我正在使用此命令。
1536
我得到的输出是:
%% DO CCA
[A,B,r,U,V] = canoncorr(X,Y);
任何人都可以告诉我这些变量是什么意思。我已经多次查看了文档,但仍然不清楚它们。据我了解,CCA找到两个线性投影矩阵 Name Size Bytes Class Attributes
A 1920x58 890880 double
B 1536x58 712704 double
U 60x58 27840 double
V 60x58 27840 double
r 1x58 464 double
和Wx
,以便Wy
和X
在Y
和Wx
上的投影最大化相关。
1)有谁能告诉我以下哪些是这些矩阵?
2)如何在CCA的学习子空间中找到投影向量?
任何帮助将不胜感激。提前谢谢。
答案 0 :(得分:3)
据我了解,X
和Y
是原始数据矩阵,A
和B
是执行基础更改为最大的系数集关联您的原始数据。您的数据在新基础中表示为矩阵U
和V
。
所以回答你的问题:
您要查找的投影矩阵为A
和B
,因为它们会将X
和Y
转换为新空间。
X
和Y
对新空间的结果分别为U
和V
。 (r
向量表示U
和V
之间的相关矩阵的条目,这是对角矩阵。)
MATLAB documentation表示可以使用以下公式完成此转换,其中N
是观察次数:
U = (X-repmat(mean(X),N,1))*A
V = (Y-repmat(mean(Y),N,1))*B
This page很好地展示了这个过程,因此您可以看到每个系数在转换过程中的含义。