PCA计算分类?

时间:2014-05-05 14:32:36

标签: matlab pca dimensionality-reduction

要做PCA,我们必须从输入数据计算协方差矩阵,然后在该协方差矩阵中执行特征分解。

为了获得协方差矩阵,我们必须计算均值,然后用我们的数据(矩阵中的数据)将其减去。但问题是我要进行PCA分类。

我对如何计算平均值感到困惑(它必须是行计算的平均值(考虑类)/列(考虑特征))?

在我的情况下,这是要素矩阵的格式:

  Class1: feat1 feat2 feat3...featn
  Class2: feat1 feat2 feat3...featn
  Class3: feat1 feat2 feat3...featn
  Class4: feat1 feat2 feat3...featn
  Class5: feat1 feat2 feat3...featn
  .
  .
  .
 ClassN: feat1 feat2 feat3...featn

我所做的是

 mean (perclass or rows)

所以我有(平均矩阵

 Mean_Class1
 Mean_Class2
 Mean_Class3
 Mean_Class4
 Mean_Class5
 .
 .
 .
Mean_ClassN

然后我用我的特征矩阵对这些数据进行Substract。 所以它变成了( Substract Matrix ):

Class1: feat1-Mean_Class1 feat2-Mean_Class2 feat3-Mean_Class3...featn-Mean_ClassN
Class2: feat1-Mean_Class1 feat2-Mean_Class2 feat3-Mean_Class3...featn-Mean_ClassN
Class3: feat1-Mean_Class1 feat2-Mean_Class2 feat3-Mean_Class3...featn-Mean_ClassN
Class4: feat1-Mean_Class1 feat2-Mean_Class2 feat3-Mean_Class3...featn-Mean_ClassN
Class5: feat1-Mean_Class1 feat2-Mean_Class2 feat3-Mean_Class3...featn-Mean_ClassN
.
.
.

ClassN:feat1-Mean_Class1 feat2-Mean_Class2 feat3-Mean_Class3 ... featn-Mean_ClassN

接下来是协方差矩阵

(Substract Matrix)*(Substract Matrix)^T

使用eigs从此协方差矩阵中提取主成分 [Vectors,Values] = eigs(CovarianceMatrix);

为了降低维数,我必须在将其均值减去提取的特征向量之后将这些数据投影。

然后投射它:

  Substract Matrix * Vectors
  1. 那些对吗?还是有一些错误概念?
  2. 或者我必须计算每列的平均值(考虑功能号码)?
  3. 为了投射到新的空间,我是否必须用矩阵(每行的平均值计算)来减去矩阵中的数据?
  4. 对不起如果这是一个愚蠢的问题,但我真的需要确认真实的概念..

0 个答案:

没有答案