我有以下大小为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);