MATLAB:用于降维的 PCA
MATLAB: PCA for Dimensionality Reduction
我计算了图像数据集的颜色描述符并生成了一个 152×320 矩阵(152 个样本和 320 个特征)。我想使用 PCA 来降低图像描述符的维度 space。我知道我可以使用 Matlab PCA 内置函数来实现它,但由于我刚刚开始学习这个概念,所以我想在没有内置函数的情况下实现 Matlab 代码,这样我就可以清楚地了解该函数的工作原理。我试图在网上找到如何做到这一点,但我所能找到的只是 PCA 的一般概念或使用内置函数实现它,而没有清楚地解释它是如何工作的。任何人都可以通过分步说明或 link 帮助我解释如何实施 PCA 以进行降维的简单方法。我之所以如此困惑,是因为 PCA 的用途和实现它的方法太多了,而且我读得越多,我就越困惑。
PCA 基本上是采用数据的主要特征向量(或者更好的是它们对协方差矩阵的主要特征向量的投影)。
您可以使用 SVD (Singular Value Decomposition)。
这里要模仿MATLAB的pca()
function你应该怎么做:
- 将所有特征居中(数据的每一列均值应为零)。
- 对您的数据应用
svd()
function。
- 使用 V 矩阵(它的列)作为向量来投影数据。根据您想要的数据维度选择要使用的列数。
投影数据现在是你新的降维数据。
我计算了图像数据集的颜色描述符并生成了一个 152×320 矩阵(152 个样本和 320 个特征)。我想使用 PCA 来降低图像描述符的维度 space。我知道我可以使用 Matlab PCA 内置函数来实现它,但由于我刚刚开始学习这个概念,所以我想在没有内置函数的情况下实现 Matlab 代码,这样我就可以清楚地了解该函数的工作原理。我试图在网上找到如何做到这一点,但我所能找到的只是 PCA 的一般概念或使用内置函数实现它,而没有清楚地解释它是如何工作的。任何人都可以通过分步说明或 link 帮助我解释如何实施 PCA 以进行降维的简单方法。我之所以如此困惑,是因为 PCA 的用途和实现它的方法太多了,而且我读得越多,我就越困惑。
PCA 基本上是采用数据的主要特征向量(或者更好的是它们对协方差矩阵的主要特征向量的投影)。
您可以使用 SVD (Singular Value Decomposition)。
这里要模仿MATLAB的pca()
function你应该怎么做:
- 将所有特征居中(数据的每一列均值应为零)。
- 对您的数据应用
svd()
function。 - 使用 V 矩阵(它的列)作为向量来投影数据。根据您想要的数据维度选择要使用的列数。
投影数据现在是你新的降维数据。