데이터 세트는 다음과 같습니다.Excel Solver가 Matlab K-means에서 최고의 중심을 찾지 못하는 이유는 무엇입니까?
데이터 = [4 12; 5 10; 8 7; 5 3; 5 4; 2 11; 5 4; 3 8; 6 2; 7 4; 10 8; 8 9; 10 9; 항 반면
ctrs = [5.6000 3.4000; 3.5000 10.2500; 9.2000 9.0000]
sumD = [6.4000; 13.7500; 18.8000]
: 그것은 저 같이 무게 중심과 sumD (클러스터 내의 포인트 - 투 - 중심 거리의 합)을 제공
[idx,ctrs, sumD] = kmeans(Data,3)
: 10-12]
는 그럼 진행 Excel 해법 (게시 된 기사에서), ctrs
및 sumD
은 k = 3에 대해 다음과 같습니다.
ctrs = [5.21815716 3.66736761; 3.615385665 10.461533; 9.47841197 8.75055345]
sumD = [5.151897802; 7.285383286; 8.573829765]
(주의 :이 기사에서 저자는 [4 4; 5 12; 10 6]).
Excel에서는 더 정확하게 ctrs
값을 찾아보다 작은 sumD
값을 찾습니다. Matlab을 사용하여이 작업을 수행 할 수 없었습니다. 그래서 kmeans
의 다른 매개 변수를 사용했습니다. 나는 'replicates'및 'options'(MaxIter)를 사용했고 3D 배열 시드가있는 경우에도 '시작'매개 변수를 사용하지 않았습니다. 나는 심지어 기사에서 Matlab에 동일한 초기 씨앗을 채택했습니다. 다음은 내가했으나 실패 무엇 :
첫째 :이 오류를 제공
opts = statset('MaxIter',100);
Seed = [4 4; 5 12; 10 6];
[idx,ctrs] = kmeans(Data,3,'Replicates',50,'options',opts,'start',Seed)
다음 '복제'매개 변수의 값과 일치해야합니다 '시작'배열의 세 번째 차원. 둘째
는 :
I는 첫 번째 페이지가 동일한 초기 시드 및 상기 나머지 (49)는 랜덤 페이지 50의 3 차원 배열을 만들었다.
T = rand(3,2,49);
그 후, 나는이 같은 50 페이지 3D 배열 생성 :
Seed2 = cat(3,Seed,T);
그런 다음 kmeans
사용 : 그러나
[idx,ctrs] = kmeans(Data,3,'Replicates',50,'options',opts,'start',Seed2)
을 matlab에 준 경고 I는 임의의 페이지를 생성 첫 번째 복제 후 모든 복제본이 반복 1에서 생성 된 빈 클러스터로 인해 종료되었음을 나타냅니다. 또한 얻은 idx, ctrs 및 sumD 값은 이전과 동일합니다. 마치 위의 첫 번째 기능을 실행 한 것처럼 (즉 [idx,ctrs, sumD] = kmeans(Data,3)
).
막혔습니다. 저는 MATLAB을 사용하여 기사에 실린 Excel 해석기의 결과를 검증하려고합니다. 기사에서 나온 14 개의 관측치에 적용된 동일한 알고리즘을 900+ 관측치의 더 큰 데이터 세트에 적용 할 것이기 때문입니다.
내가 뭘 잘못하고 있니? Excel Solver의 동일하거나 유사한 결과를 얻기 위해 코딩에서 수정해야 할 사항은 무엇입니까?
OP는 상당히 작은 sumD로 솔루션을 얻었으며 Matlab이 찾지 못한 이유가 궁금합니다. 예를 들어 낮은 빨간색 별은 오른쪽 및 아래쪽으로 조금 더있을 수 있습니다. (그냥 내 눈을 판단) – Trilarion
안녕 Anoop 및 Trilarion. 답변 해 주셔서 감사합니다. 예, 시각적으로 ctrs의 위치가 비슷합니다. Matlab은 Excel Solver와 동일한 클러스터링을 수행합니다. 그러나 Trilarion이 언급 한 것처럼 Matlab은 Matlab보다 Solver의 sumD 값이 작기 때문에 정확하지 않습니다. 그러나 정확한 ctrs가 필요합니다.이 알고리즘을 내 900+ 데이터 세트에 반영하면 데이터 세트가 크고 서로 가깝기 때문에 시각적으로 감지 할 수없는 많은 편차가 있기 때문입니다. 따라서 클러스터링이 잘못 될 수 있습니다. 기사 링크는 다음과 같습니다. http : //bit.ly/1CmNzBn –