당신은 이미 당신이 당신의 훈련 예 3 개 기능 (레드, 녹색, 블루)이 각각의 픽셀이 어디에 K-수단을 실행하려면, 말했다 재 작성 것. 나는 여러분이 이미 무언가를 결정한 것처럼 보일지라도, 먼저 0에서 16이나 0에서 255라고 말하기보다는 RGB 데이터를 0에서 1.0으로 정규화하여 거리 표준을 정의하는 것처럼 보이지만 결과를 비교할 수 있습니다. 색상의 깊이에 관계없이.
당신은 화소 1..m 주문 및 = (아래 참조) M : m X 3 행렬 X에 너비 X 높이 를 보관한다. X의 행에 각 픽셀을 할당하는 방법 (임의로 이미지 위치 (x, y)의 픽셀을 y * width + x 행으로 설정)
지금 당신은 단순히 IDX있는 픽셀이있는 중심에 속한 추적하기 위해 추가 미터 X 인덱스 벡터를 사용해야합니다. idx = zeros(size(X,1), 1);
for i = 1:size(X,1)
minNormSq = 0;
for j = 1:K
normSq = sum((X(i,:) .- centroids(j,:)).^2);
if j == 1 || normSq < minNormSq
minNormSq = normSq;
idx(i) = j;
end
end
end
나중에 새 중심 값을 assign a array to a boolean condition 계산 할 수있을 때.
for j = 1:K
inclusion = (idx == j);
centroids(j,:) = inclusion'*X;
centroids(j,:) = centroids(j,:)/sum(inclusion);
end
여기서 프로그래밍 질문을 하시겠습니까? 그렇다면 더 자세한 정보를 제공해야합니다. 통계 질문 (k-means 클러스터링과 관련된 내용)을 묻는 경우 [statistics.se]에 질문해야합니다. – Joe
죄송합니다. 내 실수는 잊어 버렸습니다. 그래, 프로그래밍 질문과 나는 matlab에 도움을 원한다. – lavi
지금은 k- 평균 클러스터링을 수행하는 방법을 대략적으로 물어보기 때문에 좋은 프로그래밍 질문이 아닙니다. 여기서는 너무 광범위합니다. 코드에 대한 도움이 필요하면 도움이 필요한 시점에 대한 예제 데이터를 제공하고 파악하려는 내용과 어떤 프로그래밍 프레임 워크가 적합해야하는지 보여줍니다. – Joe