k- 평균에 대한 군집 선택 : 1 군집 사례


9

kmeans를 사용한 클러스터링이 적절한 지 판단하는 좋은 방법을 아는 사람이 있습니까? 즉, 샘플이 실제로 균질 한 경우 어떻게해야합니까? 혼합 모델 (R의 mclust를 통해)이 1 : k 클러스터 사례에 적합한 통계를 제공한다는 것을 알고 있지만, kmeans를 평가하는 모든 기술은 최소 2 개의 클러스터가 필요한 것처럼 보입니다.

누구든지 kmeans에 대한 1 및 2 군집 사례를 비교하는 기술을 알고 있습니까?

답변:


10

차이 통계는이를 수행하는 좋은 방법입니다. Tibshirani, Hastie & Walther (2001).

http://stat.ethz.ch/R-manual/R-devel/library/cluster/html/clusGap.html- 관련 R 패키지.

아이디어는 K = 1,2,3, ...에 대해 데이터를 클러스터링하는 무작위 가설에 대한 귀무 가설을 비교하는 순차적 가설 테스트를 수행한다는 것입니다. 이는 하나의 클러스터에 해당합니다. K = 1, 즉 클러스터가 없는지 여부를 확실하게 표시 할 수 있다는 것이 장점입니다.

예를 들어, 나는 며칠 전에 천문학 데이터를 검사하고있었습니다. (볼록한) 클러스터에 어떤 증거가 있는지 알고 싶었습니다. 내 데이터는 '전송'입니다

library(cluster)
cgap <- clusGap(transit, FUN=kmeans, K.max=kmax, B=100)
for(k in 1:(kmax-1)) {
    if(cgap$Tab[k,3]>cgap$Tab[(k+1),3]-cgap$Tab[(k+1),4]) {print(k)}; 
    break;
}

갭 통계를 사용하면 테스트가 실패하는 K의 첫 번째 값, 즉 갭 통계가 크게 감소하는 K 값을 찾고 있습니다. 위의 루프는 그러한 ak를 인쇄하지만 간단히 cgap를 플로팅하면 다음과 같은 그림을 얻을 수 있습니다. 실제로
여기에 이미지 설명을 입력하십시오 갭이 k = 1에서 k = 2로 어떻게 크게 떨어졌는지 확인하십시오 . 이는 실제로 클러스터가 없음을 나타냅니다 (예 : 클러스터 1 개).


단일 연결로 계층 적 클러스터링에 대해 동일한 작업을 수행하는 방법은 무엇입니까? clusGap의 FUN 인수를 설명해 주시겠습니까? 계층 적 kmax = 20 cgap <-clusGap (cluster_feat_base [, 2 : ncol (cluster_feat_base)], FUN = hclust, K.max = kmax, B = 100)에 대해 아래 줄을 실행했습니다. 그러나 FUNcluster (X, kk, ...)에서 Error라는 오류가 발생했습니다. 잘못된 클러스터링 방법 2
GeorgeOfTheRF

4

A. Kalogeratos와 A.Likas, Dip-means : NIPS 2012 의 클러스터 수를 추정하기위한 증분 클러스터링 방법 .

아이디어는 한 점과 세트의 나머지 점 사이의 유사성 / 거리를 포함하는 벡터에 대한 단일성에 대한 통계적 가설 테스트를 사용하는 것입니다. 테스트는 Hartigan-Hartigan 딥 테스트 Ann을 사용하여 수행됩니다 . 통계 학자. 13 (1) : 70-84.

이 방법은 모든 데이터 세트를 하나의 군집으로 시작하고 단일성 가설이 기각되는 한 (즉, 하나 이상의 군집이 존재하는 한) 점진적으로 분할합니다.

따라서이 방법은 데이터에 클러스터가 둘 이상 있는지 (질문) 표시하지만 최종 클러스터링을 제공 할 수도 있습니다.

Matlab에서 일부 코드를 찾을 수 있습니다 .


0

동일한 예를 고려하고 있다고 가정 해 봅시다.

라이브러리 (클러스터) cgap <-clusGap (전송, FUN = kmeans, K.max = kmax, B = 100) for (k in 1 : (kmax-1)) {if (cgap[케이,]>탭 [(k + 1), 3] -cgap $ Tab [(k + 1), 4]) {print (k)}; 단절; }

최대 격차 통계를 기반으로 최상의 클러스터링 솔루션에 해당하는 클러스터 요소를 어떻게 서브 세트 할 수 있습니까? 각 클러스터에 대한 추가 분석에 사용할 수 있습니다.

하위 집합이라는 명령이 있다는 것을 알고 있습니다. 원하는 클러스터 수를 지정했을 때이 명령을 사용하는 데 문제가 없습니다. 그러나 간격을 사용하여 얻은 최적의 k를 기반으로 하위 집합을 설정하려는 경우 하위 집합을 지정하는 방법 (즉, 루프가있는 경우 클러스터의 하위 집합 요소)

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.