利用PCA在八度音阶的低维空间上进行投影



我有以下大小为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维)和投影数据,使我有一个单列向量?

第二个输出变量pcvecs已经包含了您在n维度中的投影数据,其中n是数据矩阵中的列总数。因此,如果你想看到你的数据投射到m维度的子集,m < n,你只需要提取出pcvecs的前m列。

在您的例子中,是m=1,因此它就是:

reduced = pcvecs(:,1);

最新更新