2014-11-11 10 views
1

Я пытаюсь использовать fcl (нечеткое C-mean clustering) средство matlab, но я не знаю, как разместить свои собственные данные. Я пытаюсь сгруппировать узлы на основе расстояния от центра. Таким образом, мои данные представляют собой координаты x и y. Я в основном пытаюсь сравнить его с к-средствами это, как я сделал K-средства:Использование matlab FCM для кластеризации моих собственных данных

X=[x_users,y_users]; 
nc=20;    
idx = kmeans(X,nc); 

Мне нужно знать, как сделать то же самое с ТСМ, прошу прощения, если мой вопрос слишком наивный.

Спасибо,

+0

'FCM (X, пс),' это сделает. – NKN

ответ

0
fcm(X,nc); 

будет делать это. Например:

data = rand(100,2); 
nc = 2; 
[center,U,obj_fcn] = fcm(data,nc); 
plot(data(:,1),data(:,2),'o'); 
maxU = max(U); 
index1 = find(U(1,:)== maxU); 
index2 = find(U(2,:)== maxU); 
line(data(index1,1),data(index1,2),'linestyle','none',... 
    'marker','*','color','g'); 
line(data(index2,1),data(index2,2),'linestyle','none',... 
    'marker', '*','color','r'); 

enter image description here

Использование kmeans ответ будет как следующий сюжет:

idx = kmeans(data,nc); 
data1 = data(idx==1,:); 
data2 = data(idx==2,:); 
figure;plot(data1(:,1),data1(:,2),'x'); 
hold on;plot(data2(:,1),data2(:,2),'or'); 

enter image description here

+0

Большое спасибо, это так полезно. Как извлечь центроиды? –

+0

см. Центры в '[center, U, obj_fcn] = fcm (data, nc);'? – NKN