使用PCA投影到Octave中的低维空间

时间:2015-10-12 23:44:35

标签: matlab machine-learning octave pca dimensionality-reduction

我有以下大小为300 x 2的矩阵,其中包含最小 - 最大标准化数据:

# Pre-Process data
scaled_acc = preprocess(mtx_accuracy);

# PCA on mtx_accuracy
[pcvars pcvecs] = princomp(scaled_acc);

preprocess是缩放功能:

function zScore = preprocess(data)
    means = ones(length(data),1);
    means = means * mean(data);
    stds = ones(length(data),1);
    stds = stds * std(data);
    zScore = (data - means) ./ stds;
endfunction

如何减少(到1维)并投影数据,以便我有一个列向量?

1 个答案:

答案 0 :(得分:1)

第二个输出变量pcvecs已经包含n维度中的预计数据,其中n是数据矩阵中的总列数。因此,如果您希望将您的数据投放到m维度m < n的子集中,您只需要提取m的第一个pcvecs列。< / p>

在您的情况下,m=1,因此它只是:

reduced = pcvecs(:,1);