최소 클러스터 크기 제한이있는 클러스터링 (k- 평균 또는 기타)


14

그룹 내 제곱합 (WSS)을 최소화하기 위해 장치를 클러스터로 클러스터링해야하지만 클러스터에 적어도 단위가 포함되도록해야합니다 . R의 군집 기능 중 최소 군집 크기 제약 조건이 적용 되는 군집으로 군집 할 수있는 아이디어가 있습니까? kmeans ()는 크기 제한 옵션을 제공하지 않는 것 같습니다.m kkmk

답변:


5

EM 클러스터링 사용

EM 클러스터링에서 알고리즘은 데이터에 맞게 초기 클러스터 모델을 반복적으로 세분화하고 데이터 포인트가 클러스터에 존재할 확률을 결정합니다. 알고리즘은 확률 모델이 데이터에 적합 할 때 프로세스를 종료합니다. 적합치를 결정하는 데 사용되는 함수는 모형에 주어진 데이터의 로그 우도입니다.

프로세스 중에 빈 클러스터가 생성되거나 하나 이상의 클러스터 멤버 자격이 지정된 임계 값 아래로 떨어지면 모집단이 낮은 클러스터가 새로운 시점에 다시 시드되고 EM 알고리즘이 다시 실행됩니다.


고마워 마리아나 파라 메트릭 모델에 덜 의존하는 솔루션을 선호하지만 확실히 살펴볼 것입니다.
Cyrus S

4

이 문제는이 백서에서 해결되었습니다.

Bradley, PS, KP Bennett 및 Ayhan Demiriz. "제약 된 k- 평균 군집화." Microsoft Research, Redmond (2000) : 1-8.

나는이 구현 파이썬에서 알고리즘을.


이것은 완벽합니다, 감사합니다! rPythonR 의 패키지를 사용하여 R 스크립트에서 액세스 한이 구현에 대한 인터페이스를 작성했습니다.
Michael Ohlrogge

@MichaelOhlrogge 파이썬 패키지 양식 R을 호출하기 위해 작성한 인터페이스에 어딘가에 (github?) 예가 있습니까? 감사!
Matifou

죄송합니다. 이전 코드를 살펴 보았지만 더 이상 찾을 수 없습니다.
Michael Ohlrogge

3

클러스터 크기에 대한 테스트를 통해 if 루프의 일부로 k 평균을 실행하는 것의 문제 일 것이라고 생각합니다. 클러스터 k의 카운트 수 n-k는 동일한 데이터에서 각 실행에 대해 다른 결과를 제공한다는 것을 기억하십시오. 어쨌든 "최상의"결과를 추출하기 위해 루프의 일부로 실행해야 할 것입니다.


1
고마워, 알렉스 그래도 문제가 있습니다. 루프를 통해 생성 된 솔루션이 제약 조건을 충족시키지 못하면 어떻게됩니까? k는 클러스터 크기 제한없이 실행되도록 설정된 경우 발생할 수 있습니다. 나는 이것을 피하는 해결책을 원합니다. (응용 프로그램의 특성상 클러스터의 최소 크기를 보장해야합니다.)
Cyrus S

1

데이터 크기는 얼마나됩니까? 계층 적 클러스터링을 실행 한 다음 덴드로 그램을 기반으로 유지할 클러스터를 결정할 수 있습니다.

데이터 세트가 크면 초기 비 계층 적 클러스터링과 비 계층 적 분석의 그룹을 사용하는 계층 적 클러스터링의 두 클러스터링 방법을 결합 할 수도 있습니다. Martínez-Pastor et al (2005) 에서이 방법의 예를 찾을 수 있습니다.


고마워, 마누엘 이것은 실제로 매우 흥미로운 가능성처럼 들립니다. 계층 적 파티셔닝이 알고리즘이 크기 제약 조건에서 직접 최적의 클러스터 파티셔닝을 달성하지 못하게하는 특정 제약 조건을 부과하는지 여부에 대해 생각해야합니다. 그러나 직관적으로, 이것이 효과가 있음을 알 수 있습니다.
Cyrus S

0

이는 클러스터 할당 단계 (EM의 E)를 최소 비용 흐름 (MCF) 선형 네트워크 최적화 문제로 공식화하여 수정함으로써 달성 할 수 있습니다.

빠른 C ++ 구현 인 Google의 Operations Research 도구의 SimpleMinCostFlow를 사용 하는 Python 패키지 를 작성했습니다 . 표준 scikit-lean API가 있습니다.

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