0

我正在做无监督分类。为此,我有 n 个分类功能,我想使用 PCA 将数据投影到新的子空间,然后使用 PCA 的输出执行聚类。我写了以下代码:

for c=1:size(feature,1) 
    feature(c,:)=feature(c,:)-mean(feature);
end
DataCov=cov(feature); % covariance matrix
[PC,latent,explained] = pcacov(DataCov);

这给了我:

 PC =

0.6706    0.7348    0.0965    0.0316   -0.0003   -0.0001
0.0009   -0.0060    0.0298    0.0378    0.8157   -0.5764
0.0391   -0.1448    0.5661    0.8091   -0.0406    0.0264
0.7403   -0.6543   -0.1461   -0.0505    0.0018   -0.0005
0.0003   -0.0020    0.0193   -0.0116    0.5768    0.8166
0.0264   -0.1047    0.8048   -0.5832   -0.0151   -0.0169


latent =

0.0116
0.0001
0.0000
0.0000
0.0000
0.0000

解释 =

 98.8872  <-----
1.0445
0.0478
0.0205
0.0000
0.0000

解释表明,只有第一个分量(由 <-- 表示)真正对解释方差有很大贡献。

请回复,是否可以仅使用第一个组件创建新功能。???

以下是使用所有 Principle 组件为我提供的新功能集 feature_New。这是创建可以执行聚类的新功能集的正确方法吗:

  feature_New= feature*PC;
4

0 回答 0