我刚刚开始在 Matlab 中使用 CCA。我有两个维度为 X
和 Y
的向量 60x1920
和 60x1536
,样本数为 60
,不同向量集中的变量分别为 1920
和 1536
。我想知道做 CCA 以将它们减少到子空间,然后进行特征匹配。
我正在使用这个命令。
%% DO CCA
[A,B,r,U,V] = canoncorr(X,Y);
我得到的输出是这样的:
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
谁能告诉我这些变量是什么意思。我已经多次查看文档,但仍然不清楚它们。据我了解,CCA 找到两个线性投影矩阵
Wx
和 Wy
,使得 X
和 Y
在 Wx
和 Wy
上的投影最大相关。1)谁能告诉我这些是以下哪些矩阵?
2)另外如何在CCA的学习子空间中找到投影向量?
任何帮助将不胜感激。提前致谢。
最佳答案
据我了解,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 很好地展示了该过程,因此您可以看到每个系数在转换过程中的含义。
关于matlab - 典型相关分析,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/28149199/