I have just started working using CCA in Matlab. I have two vectors X
and Y
of dimension 60x1920
and 60x1536
with the number of samples being 60
and variables in the different set of vectors being 1920
and 1536
respectively. I want to know do CCA for reducing them to the subspace and then do feature matching.
I am using this commands.
%% DO CCA
[A,B,r,U,V] = canoncorr(X,Y);
The output I get is this :
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
Can anyone please tell me what these variables mean. I have gone over the documentation several times and still is unclear about them. As I understand CCA finds two linear projection matrices Wx
and Wy
such that the projection of X
and Y
on Wx
and Wy
are maximally correlated.
1) Could anyone please tell me which of the following matrices are these?
2) Also how can I find the projected vectors in the learned subspace of CCA?
Any help will be appreciated. Thanks in advance.
As I understand it, with X
and Y
being your original data matrices, A
and B
are the sets of coefficients that perform a change of basis to maximally correlate your original data. Your data is represented in the new bases as the matrices U
and V
.
So to answer your questions:
The projection matrices you are looking for would be
A
andB
since they transformX
andY
into the new space.The resulting projections of
X
andY
into the new space would beU
andV
, respectively. (Ther
vector represents the entries of the correlation matrix betweenU
andV
, which is a diagonal matrix.)
The The MATLAB documentation says this transformation can be done with the following formulae, where N
is the number of observations:
U = (X-repmat(mean(X),N,1))*A
V = (Y-repmat(mean(Y),N,1))*B
This page lays out the process nicely so you can see what each coefficient means in the transformation process.
来源:https://stackoverflow.com/questions/28149199/cannonical-correlation-analysis