2016-08-18 4 views
0

클러스터 의미 K에서 반복해야합니까 얼마나 많은 시간을 확인할 수 있습니다 내 프로젝트를 세 번 실행하면 각 플롯마다 매번 차이점이 생기고 중심점과 데이터 포인트 위치가 변경됩니다. 토지 크기는 100 개입니다. 예
우선 런
> 중심 위치
제 실행> 중심 위치 (X) 3이고, Y 2
제 실행> 중심 위치는, X 2, Y 6
제 실행> 중심 위치 (X) (5), Y 3 3
제 런> Y × 5 인 중심의 위치는 Y 2
하고 계속 반복 동일한 패턴 × 3이다
그래서 I 단지 첫 번째 실행에서 통화/그래프를 취해야 발생이 정상인지 궁금 또는 세 번째 실행? 내 코드에서 볼 수 있듯이 데이터는 임의의 숫자 인 3000 번 반복됩니다. 그러나 지금은 올바른 ti 문제는 프로젝트의 첫 3 실행에 다른 음모가있어 확실하지 않다면 얼마나 많은 시간을 k 평균 클러스터에서 반복해야합니까 확인어떻게 나는 내가 MaxIter 사이의 서로 다른 이해 어려움을 발견하고 내 파일 I에서 <br>를 복제 작업을하는 동안 나는 kmean 클러스터링 에 대한 matlab에 프로젝트에서 일하고 있어요

Array=csvread('data.csv'); 
    dataset = Array(:,[1:2]); 


    optns = statset('MaxIter',3000); 

    [idx,C] = kmeans(dataset,2,'Distance','cityblock',... 
     'Options',optns); 

    figure; 
    plot(dataset(idx==1,1),dataset(idx==1,2),'r.','MarkerSize',20) 
+0

클러스터링 문제에는 "정답"은 없습니다 : converged가 (즉 MaxIter에 도달 할 때) 거짓이라면, 그것은 경고 메시지를 보여줍니다. 당신은 다른 결과를 얻을 수 있으며 올바른 것을 선택하는 것은 당신의 임무입니다. – AVK

+0

@AVK는 MaxIter를 사용하는 것 이외의 다른 방법이 있습니다. 여기서 변경이 없을 때 iterating을 멈출 수 있다고 말할 수 있습니까? – mozaJ

답변

0

kmeans.m 다음 코드가 포함

   % Determine which points moved 
      moved = find(nidx ~= previdx); 
       % Some code here ..... 
      if isempty(moved) 
       converged = true; 
       break; 
      end 

그래서 확인을하고 변화가없는 경우 중지합니다.

  if ~converged 
      if reps==1 
       warning(message('stats:kmeans:FailedToConverge', maxit)); 
      else 
       warning(message('stats:kmeans:FailedToConvergeRep', maxit, rep)); 
      end