我有以下大小为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维)并投影数据,以便我有一个列向量?
答案 0 :(得分:1)
第二个输出变量pcvecs
已经包含n
维度中的预计数据,其中n
是数据矩阵中的总列数。因此,如果您希望将您的数据投放到m
维度m < n
的子集中,您只需要提取m
的第一个pcvecs
列。< / p>
在您的情况下,m=1
,因此它只是:
reduced = pcvecs(:,1);