2017-04-27 8 views
-1

나는 1500 명의 환자의 폐 이미지가 있습니다. 그리고 나는 그들에게 kmean을 적용하여 내 문제를 해결하려고합니다. 내 문제는, 한 환자 (230 개의 이미지를 가짐)에 k 평균을 적용한 다음이 환자의 중심을 저장하고 싶습니다.이 중심에 기반하여 다른 환자에게 kmeans를 적용하고 싶습니다. 이것은 MATLAB 코드입니다. [idx,C] = kmeans(data,80) 지금은 C이지만 사용하고 다른 이미지에도이 중심을 적용하려면 어떻게해야합니까?k의 밑에 군집하는 것은 centroid를 의미합니다

내 데이터는 다음과 같습니다. 이러한 이미지의 히스토그램을 기반으로 클러스터링을 수행합니다.

Img1 histogram with 16 bins 
Img2 Histo gram with 16 bins 
Img3 // // // // // // // 
Img4 /////// /// ///
. 
. 
. 

자습서 나 도움이 될만한 것이 있으시면 제안하십시오. 고맙습니다.

답변

1

Kmeans에 의해 결정되는 각 포인트의 구성원은입니다. 그러므로 센터가있는 후에는 각 센터와의 거리를 확인하여 더 많은 포인트를 연관시킬 수 있습니다. MATLAB에서 쉽게 pdist2으로 작업을 수행 할 수 있습니다

dim = 2; 
n = 100; 
% generate two data sets 
data1 = rand(n,dim); 
data2 = rand(n,dim); 
% computing membership & clusters using kmeans on data1 
k = 5; 
[idx1,C] = kmeans(data1,k); 
% computing membership using pairwise distance on data2 
D = pdist2(data2,C); 
[~,idx2] = min(D,[],2); 
% plot centers 
scatter(C(:,1),C(:,2),100,1:k,'*') 
hold on 
% plot data1 
scatter(data1(:,1),data1(:,2),30,idx1,'filled') 
% plot data2 
scatter(data2(:,1),data2(:,2),30,idx2) 
legend('centers','data1','data2') 

을 당신도 보로 노이 다이어그램 사용하여 회원 한계를 플롯 할 수 있습니다 원하는 경우 :

voronoi(C(:,1),C(:,2)); 

enter image description here