2014-05-05 69 views
0

我将从我的矩阵数据中计算出本征值和本征矢量的分类。SVD中的本征矢量

行代表不同的类,列代表特征。

因此,举例来说,如果我有

X= 
    [2 3 4] 
    [3 2 4] 
    [4 5 6] 
    [8 9 0] 

我必须使用的,而不是PCA SVD因为矩阵不是方形。

我所做的是:

  1. 计算的平均值为每行。所以,我有

    Mean= 
        M1 
        M2 
        M3 
        M4 
    
  2. 我的。减去矩阵X与平均数

    Substract= 
    
    [2-M1 3-M1 4-M1] 
    [3-M2 2-M2 4-M2] 
    [4-M3 5-M3 6-M3] 
    [8-M4 9-M4 0-M4] 
    
  3. 协方差矩阵=(*。减去^。减去T)/(4-1)

  4. [ U,S,V] = svd(X)

都是我的一步一步吧?通过计算每行的平均值(作为类)?如果我想将我的数据投影到特征空间(用于降维),这是特征向量(U或V)???????????????????????

回答

1

无论您的矩阵是否为正方形,您都可以执行PCA。事实上,你的矩阵很少是平方的,因为它的形式为n*p,其中n是观察的数量,而p是特征的数量。因此,你可以使用MATLAB的pricomp功能

[W, pc] = princomp(data); 

其中W是权重矩阵和pc是主成分得分。你可以看到你的数据被投射到主成分空间,

plot(pc(1,:),pc(2,:),'.'); 

这说明在第一代和第二主分量方向的数据。