2013-08-13 2 views
-1

kmean에 문제가 있습니다. kmean 알고리즘으로 얻은 반복 ("iter")과 CostFunction (아래 표시된 출력의 "sum") 값을 플로팅하고 싶습니다. 입력 옵션을 변경하여이를 얻을 수 있습니다MATLAB을 사용하여 K 평균 클러스터링에서 반복을 플로팅

14 iterations, total sum of distances = 731.224 


    iter phase  num    sum 

    1  1  604   847.577 
    2  1  56   818.135 
.... 

내가 this처럼 뭔가를 그리려는이 데이터를 사용하여. itersum가 변수로 저장됩니다

+0

지금까지 노력하고 무엇을 게시하시기 바랍니다. SO 사용자는 코드 작성을 위해 여기에있는 것이 아니라 이미 구현 한 것을 도와줍니다. – random

+0

@AliTahoori 내장형 matlab 함수 kmeans를 사용하고 있습니까? 그렇다면 사용을 게시 할 수 있습니까? –

+0

예 내장 된 matlab 함수를 사용합니다. 사용법은 정말 쉽고 빠릅니다 ..! 왜 묻는거야?? –

답변

0

반복 작업의 반복 진행이 사용자가 쿼리 할 수있는 개체에 저장되어 있지 않으므로 명령 줄에 표시되는 정보를 수집해야합니다.

diary temp 
% .... 
% execute kmeans here, something like this: 
% km = kmeans(H',nbin,'Display','iter'); 
% .... 
diary off 

% now extract the line by line result from the diary file called "temp" 
fid=fopen('temp'); 
dat=textscan(fid,'%s'); 
fclose(fid); 
delete temp 

dat=dat{1}; 
i1=find(~cellfun('isempty',strfind(dat,'sum'))); 
ie=find(~cellfun('isempty',strfind(dat,'iterations'))); 
i1=i1(1)+1; 
Nd=str2num(dat{ie(1)-1}); 
ie=Nd*4+i1-1; 
dat=reshape(str2num(strvcat(dat{i1:ie})),4,Nd)'; 

iter = dat(:,1) % <-- iterations 
sm = dat(:,4) % <-- sum 

diary 파일을 읽는 간소화하는 몇 가지 방법이있을 수 있지만 이것은 나를 위해 일한 다음과 같이이 작업을 수행하는 한 가지 방법이다.

문서를 통해보고 항상 현명 기능을 실행하기 전에 편집

:

doc kmeans 
+0

코드를 주셔서 감사합니다. 그러나 나는 그것을 이해할 수 없습니다. 나는이 코드를 추가해야만 할까 말까 ?? 그렇지 않은 것 같아! 입력 데이터는 어디에 있습니까? 그래서 너무 혼란스러워 ... –

+0

이것은 내가받는 오류입니다 : "??? 정의되지 않은 함수 또는 변수 'H'." 내가 그것을 정의한 후에 나는 수신 : "??? 정의되지 않은 함수 또는 변수 'nbin'." ! –

+0

@AliTahoori 제 변경 사항을 참조하십시오. 코드를 쓰는 것처럼 많든 적든 사용할 수 있어야합니다. 표시된 곳에 kmeans를 실행하는 데 사용한 선을 삽입하고 스크립트의 마지막에 플로팅 함수를 추가하십시오. –

0

경우, 당신은 단순히

plot(iter , sum , 'r' , 'LineWidth' , 1.5) 

나, 나는 기능에 익숙하지 않은 오전

plot(sum) 

더 간단 편집

하지만를 호출 할 수 작업 공간 변수로 저장하려면 다음과 같이하면됩니다 :

[IDX,C,sumd,D] = kmeans(X,k) 

그런 다음 위에서 언급 한 내용을 그대로 사용하십시오.

+0

불행히도 작업 영역에 이런 변수가 없습니다 ... 저는 그냥 기본 함수 인 imlab을 사용합니다. kmean 알고리즘. [링크] (http://www.mathworks.com/help/stats/k-means-clustering.html) –

+0

어떻게 할 수있는 작업 공간에 그 변수를 저장할 수있는 어떤 생각을 가지고 ??? –

+0

@AliTahoori : 내 대답을 편집하여 필요에 맞는 지 확인하십시오. – fpe

관련 문제