【发布时间】:2014-03-05 15:14:53
【问题描述】:
我使用 Matlab 读取 MNIST 数据库。这些图像最初是 28x28 (=784) 像素。所以,我有一个 2D 784x1000 数组(意思是,我已经阅读了 1000 张图像)。
假设我的二维数组的名称是 IMGS,Matlab 表达式:IMGS(:, 1),会给我第一张图像。
为了进行PCA,所以要提取图像的一些特征(从其中的784个中):
- 我对数组 IMGS 进行转置,将图像放到行中,将特征(维度)放到列中,放到一个名为 IMGS_T 的数组中(IMGS_T(1, :) 对应于第一个图像)。
-
我这样使用 princomp 函数:[COEFF, SCORES] = princomp(IMGS_T];
我的问题是这样的(这可能有点微不足道,但我想确定这一点): 假设我想从全部 784 个特征中提取 100 个特征,我只需要前 100 列 SCORES?
所以,在 Matlab 中,我只需要写:IMGS_PCA = IMGS(:, 100)' 我将创建一个 100x1000 的数组,称为 IMGS_PCA,它将在其列中保存我的 1000 个 MNIST 图像,并在其行中保存它们的前 100 个最重要的特征?
【问题讨论】:
标签: matlab machine-learning pca