Hartigan-Wong k-means 방법 및 기타 알고리즘의 수렴


10

나는 주로 언어 stats패키지로 구현되는 다른 k- 평균 군집 알고리즘을 이해하려고 노력했다 R.

Lloyd의 알고리즘과 MacQueen의 온라인 알고리즘을 이해합니다. 내가 이해하는 방법은 다음과 같습니다.

로이드의 알고리즘 :

처음에는 'k'군집의 중심으로 작용할 'k'임의 관측치가 선택됩니다. 그런 다음 중심이 수렴 할 때까지 다음 단계가 반복됩니다.

  1. 각 관측치와 선택된 중심 사이의 유클리드 거리가 계산됩니다.
  2. 각 중심에 가장 가까운 관측치에는 'k'버킷이 표시됩니다.
  3. 각 버킷의 모든 관측치의 평균은 새로운 중심으로 사용됩니다.
  4. 새 중심이 기존 중심을 대체하고 이전 중심과 새 중심이 수렴되지 않은 경우 반복은 1 단계로 돌아갑니다.

수렴하는 조건은 다음과 같습니다. 이전 중심과 새 중심이 정확히 동일하거나 중심 간의 차이가 적거나 (10 ^ -3 정도) 최대 반복 횟수 (10 또는 100)에 도달합니다.

맥퀸의 알고리즘 :

첫 번째 'k'인스턴스가 중심으로 선택되는 온라인 버전입니다.

그런 다음 각 인스턴스는 해당 인스턴스에 가장 가까운 중심에 따라 버킷에 배치됩니다. 각각의 중심이 다시 계산됩니다.

각 인스턴스가 적절한 버킷에 배치 될 때까지이 단계를 반복하십시오.

이 알고리즘에는 반복이 하나만 있으며 루프는 'x'인스턴스에 대해 진행됩니다.

Hartigan-Wong 알고리즘 :

  1. 모든 포인트 / 인스턴스를 임의 버킷에 할당하고 각각의 중심을 계산하십시오.
  2. 첫 번째 인스턴스에서 시작하여 가장 가까운 중심을 찾아 해당 버킷을 확인합니다. 버킷이 변경되면 새 중심, 즉 새로 할당 된 버킷의 중심과 이전 버킷 지정의 중심이 변경에 영향을받는 두 개의 중심이므로 다시 계산합니다.
  3. 모든 포인트를 반복하고 새로운 중심을 얻으십시오.
  4. 일종의 정리 작업을 수행하고 표유 지점을 올바른 버킷에 다시 할당하는 지점 2와 지점 3을 반복합니다.

따라서이 알고리즘은 수렴 결과를보기 전에 2 번의 반복을 수행합니다.

이제 Hartigan-Wong 알고리즘의 포인트 4에서 생각하는 것이 알고리즘의 올바른 방법인지 확실하지 않습니다. 내 질문은 Hartigan-Wong에 대한 다음 방법이 k- 평균을 구현하는 올바른 방법인지 여부입니다. 이 방법에 대해 두 번만 반복됩니까? 그렇지 않은 경우 수렴 조건은 무엇입니까 (중지 할 때)?

내가 이해하는 또 다른 가능한 구현 설명은 다음과 같습니다.

  1. 모든 포인트 / 인스턴스를 임의 버킷에 할당하고 각각의 중심을 계산하십시오.
  2. 첫 번째 인스턴스부터 가장 가까운 중심을 찾아 해당 버킷을 할당합니다. 버킷이 변경되면 새 중심, 즉 새로 할당 된 버킷의 중심과 이전 버킷 할당의 중심이 변경에 영향을받는 두 개의 중심이므로 다시 계산합니다.
  3. 어느 시점에서든 버킷에 변경 사항이 있으면 첫 번째 인스턴스로 돌아가 단계를 다시 반복하십시오.
  4. 모든 인스턴스가 반복되고 포인트가 버킷을 변경하지 않으면 반복이 종료됩니다.

이런 식으로 인스턴스가 버킷을 변경할 때마다 데이터 세트의 처음부터 반복해서 시작되는 많은 반복이 있습니다.

모든 설명은 도움이 될 것이며 이러한 방법에 대한 나의 이해가 잘못되었는지 알려주십시오.


무엇 이다 는 "버킷"?
종료 : 익명-무스

@ Anony-Mousse "버킷"은 "클러스터"입니다. 예 : k-means는 데이터를 'k'버킷 / 클러스터로 나누는 데 사용됩니다
Sid

그러나 MacQueens 알고리즘처럼 들립니다.
종료 : 익명-무스

@ 익명-무스. 첫 번째 단계를 제외하고 Hartigan-Wong은 MacQueens 알고리즘과 같습니다. 그러나 이것이 올바른 이해인지 확실하지 않습니다. 반복 및 수렴에 대해 누락 된 개념이있을 수 있습니다.
Sid

답변:


1

1979 년 논문의 HW 알고리즘은 입력 초기 클러스터로 사용됩니다. 그러나 저자는 마지막 섹션에서이를 얻는 방법을 제안합니다. 그들은 서브 루틴에서 초기 할당 후에 클러스터가 비어 있지 않을 것이라고 보장합니다 . 다음과 같이 진행됩니다.

  1. 전체 평균 계산합니다 .엑스¯
  2. 까지의 거리와 관련하여 관측 값을 정렬합니다. , | | x iˉ x | | 2 (오름차순으로 추측합니다)?엑스¯||엑스나는엑스¯||2
  3. 위치 의 점을 취하십시오. 여기서 L = 1 , , K 는 초기 중심으로 사용됩니다. ( [ ]는 아마도 바닥 기능을 의미하므로 시작 부분 의 1 입니다.){1+(1)[미디엄/케이]}=1,,케이[  ]1

주요 알고리즘에 관해서는, 로이드의 K- 평균-이제 시간인가? K Crammer, E Aharoni, N Slonim, 2013 년 AJCAI에 의해 출판 . 이 버전은 단순히 임의의 초기 파티션을 사용합니다. 다음과 같이 진행됩니다.

벡터 와 목표 클러스터 수 K ,엑스엑스케이

  1. 세트 임의 분할 될 XK의 클러스터와 연관된 각각 중심 벡터 계산 C C를 , 그들 나타내고 v에 C를 .엑스케이V

  2. 스캔 임의의 순서로, 그리고 모두를위한 X X엑스엑스엑스

    에스=1

    엑스={엑스}

    +={아르 자형미디엄나는() 1(엑스,V)+1와이[(와이,V엑스)(와이,V)]}{엑스}

    ++VV에스0

  3. 에스=0

아르 자형미디엄나는엑스VV{엑스}

위의 알고리즘에는 모든 질문에 대한 답변이 암시 적이라고 생각합니다. 그러나 여전히 알고리즘의 구현이 표준 인지 확인해야합니다 . 특히 그것이 R로 구현 된 것이라면 어떤 의견 / 편집도 환영합니다.

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