2014-11-11 6 views
1

fcm (fuzzy C-means clustering) matlab 도구를 사용하려고하지만 자체 데이터를 입력하는 방법을 모르겠습니다. 센터와의 거리를 기준으로 노드를 클러스터링하려고합니다. 그래서 내 데이터는 x와 y 좌표입니다. 나는 기본적으로이 내가 K-수단을 어떻게했는지입니다 K-수단과 비교하는 것을 시도하고있다 : 나는, FCM과 같은 일을하는 방법을 알아야 내 질문이 너무 순진 경우 죄송matlab FCM을 사용하여 데이터 클러스터하기

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

.

감사합니다,

+0

'FCM (X, NC)'을 할 것입니다. – 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