Matlab:降低维数的PCA

时间:2017-03-27 03:26:46

标签: matlab image-processing pca descriptor dimensionality-reduction

我计算了图像数据集的颜色描述符,并生成了152×320矩阵(152个样本和320个特征)。我想使用PCA来减少图像描述符空间的维度。我知道我可以使用Matlab PCA内置函数来实现它,但是我刚刚开始学习这个概念,我想在没有内置函数的情况下实现Matlab代码,这样我就可以清楚地了解函数的工作原理。我试图找到如何在网上做到这一点,但我能找到的只是PCA的一般概念或内置函数的实现,而没有清楚地解释它是如何工作的。任何人都可以帮我一步一步的说明或链接,可以解释如何实现PCA减少维数的简单方法。我之所以如此困惑,是因为PCA和实现它的方法有很多用途,我读的越多,我就越困惑。

1 个答案:

答案 0 :(得分:1)

PCA基本上是采用数据的主要特征向量(或者更好的是他们对协方差矩阵的主要本征向量的投影)。

您可以使用SVD (Singular Value Decomposition)

在这里模仿MATLAB pca() function你应该做什么:

  1. 居中所有功能(数据的每一列应为零均值)。
  2. 在您的数据上应用svd() function
  3. 使用V Matrix(其列)作为向量来投影数据。根据您希望拥有的数据的维度选择要使用的列数。
  4. 预计数据现在是您新的降维数据。