使用PCA进行聚类

时间:2013-04-03 12:38:53

标签: matlab machine-learning

我正在进行无监督分类。为此,我有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;

0 个答案:

没有答案