나는 주로 언어 stats
패키지로 구현되는 다른 k- 평균 군집 알고리즘을 이해하려고 노력했다 R
.
Lloyd의 알고리즘과 MacQueen의 온라인 알고리즘을 이해합니다. 내가 이해하는 방법은 다음과 같습니다.
로이드의 알고리즘 :
처음에는 'k'군집의 중심으로 작용할 'k'임의 관측치가 선택됩니다. 그런 다음 중심이 수렴 할 때까지 다음 단계가 반복됩니다.
- 각 관측치와 선택된 중심 사이의 유클리드 거리가 계산됩니다.
- 각 중심에 가장 가까운 관측치에는 'k'버킷이 표시됩니다.
- 각 버킷의 모든 관측치의 평균은 새로운 중심으로 사용됩니다.
- 새 중심이 기존 중심을 대체하고 이전 중심과 새 중심이 수렴되지 않은 경우 반복은 1 단계로 돌아갑니다.
수렴하는 조건은 다음과 같습니다. 이전 중심과 새 중심이 정확히 동일하거나 중심 간의 차이가 적거나 (10 ^ -3 정도) 최대 반복 횟수 (10 또는 100)에 도달합니다.
맥퀸의 알고리즘 :
첫 번째 'k'인스턴스가 중심으로 선택되는 온라인 버전입니다.
그런 다음 각 인스턴스는 해당 인스턴스에 가장 가까운 중심에 따라 버킷에 배치됩니다. 각각의 중심이 다시 계산됩니다.
각 인스턴스가 적절한 버킷에 배치 될 때까지이 단계를 반복하십시오.
이 알고리즘에는 반복이 하나만 있으며 루프는 'x'인스턴스에 대해 진행됩니다.
Hartigan-Wong 알고리즘 :
- 모든 포인트 / 인스턴스를 임의 버킷에 할당하고 각각의 중심을 계산하십시오.
- 첫 번째 인스턴스에서 시작하여 가장 가까운 중심을 찾아 해당 버킷을 확인합니다. 버킷이 변경되면 새 중심, 즉 새로 할당 된 버킷의 중심과 이전 버킷 지정의 중심이 변경에 영향을받는 두 개의 중심이므로 다시 계산합니다.
- 모든 포인트를 반복하고 새로운 중심을 얻으십시오.
- 일종의 정리 작업을 수행하고 표유 지점을 올바른 버킷에 다시 할당하는 지점 2와 지점 3을 반복합니다.
따라서이 알고리즘은 수렴 결과를보기 전에 2 번의 반복을 수행합니다.
이제 Hartigan-Wong 알고리즘의 포인트 4에서 생각하는 것이 알고리즘의 올바른 방법인지 확실하지 않습니다. 내 질문은 Hartigan-Wong에 대한 다음 방법이 k- 평균을 구현하는 올바른 방법인지 여부입니다. 이 방법에 대해 두 번만 반복됩니까? 그렇지 않은 경우 수렴 조건은 무엇입니까 (중지 할 때)?
내가 이해하는 또 다른 가능한 구현 설명은 다음과 같습니다.
- 모든 포인트 / 인스턴스를 임의 버킷에 할당하고 각각의 중심을 계산하십시오.
- 첫 번째 인스턴스부터 가장 가까운 중심을 찾아 해당 버킷을 할당합니다. 버킷이 변경되면 새 중심, 즉 새로 할당 된 버킷의 중심과 이전 버킷 할당의 중심이 변경에 영향을받는 두 개의 중심이므로 다시 계산합니다.
- 어느 시점에서든 버킷에 변경 사항이 있으면 첫 번째 인스턴스로 돌아가 단계를 다시 반복하십시오.
- 모든 인스턴스가 반복되고 포인트가 버킷을 변경하지 않으면 반복이 종료됩니다.
이런 식으로 인스턴스가 버킷을 변경할 때마다 데이터 세트의 처음부터 반복해서 시작되는 많은 반복이 있습니다.
모든 설명은 도움이 될 것이며 이러한 방법에 대한 나의 이해가 잘못되었는지 알려주십시오.