首页 文章

Matlab:降低维数的PCA

提问于
浏览
1

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

1 回答

  • 1

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

    你能做的就是使用SVD (Singular Value Decomposition) .

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

    • 居中所有功能(数据的每列应为零均值) .

    • 在数据上应用svd() function .

    • 使用V矩阵(其列)作为向量来投影数据 . 根据您想要拥有的数据的维度选择要使用的列数 .

    预计的数据现在是您新的降维数据 .

相关问题