我刚刚开始在 Matlab 中使用 CCA。我有两个维度为 XY 的向量 60x192060x1536,样本数为 60,不同向量集中的变量分别为 19201536。我想知道做 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 找到两个线性投影矩阵 WxWy,使得 XYWxWy 上的投影最大相关。

1)谁能告诉我这些是以下哪些矩阵?

2)另外如何在CCA的学习子空间中找到投影向量?

任何帮助将不胜感激。提前致谢。

最佳答案

据我了解,XY 是您的原始数据矩阵,AB 是执行基础更改以最大限度地关联原始数据的系数集。您的数据在新基中表示为矩阵 UV

所以回答你的问题:

  • 您要查找的投影矩阵将是 AB,因为它们将 XY 转换为新空间。
  • XY 到新空间的投影结果分别是 UV 。 (r 向量表示 UV 之间的相关矩阵的条目,这是一个对角矩阵。)

  • 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/

    10-12 20:09