Matlab从模糊聚类输出每个聚类

时间:2012-07-18 16:09:52

标签: matlab cluster-analysis fuzzy

如何在matlab中使用FCM从每个群集输出数据?

[center,U,obj_fcn] = fcm(data,cluster_n) 

2 个答案:

答案 0 :(得分:1)

我使用U向量来确定每个数据点属于哪个类。它的内容可以被认为是每个类属于一个类的概率(通知然后所有列总和为1),因此选择哪个类最可能是一种合理的方法。这是通过存储max()的第二个输出参数来完成的。

下面我已经说明了一些你可以使用的通用代码。

%# Start parameters and variables
nClasses = 3;
CM = jet(nClasses); %# Colormap for visualization of up to 255 classes

%# Create dataset
data = [mvnrnd([0 0],eye(2),100); mvnrnd([3,3],0.5*eye(2),50)];

%# Cluster
[center,U,obj_fcn] = fcm(data,nClasses); 

%# Extract class assignment
[~,y] = max(U); 

%# Visualize
f1=figure(1);clf
plot(data(:,1),data(:,2),'.k')
hold on
for i = 1 : nClasses
    plot(data(y==i,1),data(y==i,2),'o','color',CM(i,:));
end

enter image description here

编辑:

要将一个类的数据点提取到一个新变量中,只需使用

class1data = data(y==1,:);

答案 1 :(得分:-4)

我的数据集包含900个4属性。现在我把它集中在每个属性的9个集群中。我将如何在matlab中编码,以便显示每个集群中的所有数据?现在我只得到中心,U,obj_func。

我得到的数据是我计算标准差。所以我需要每个群集中的所有内容。