<aside> <img src="/icons/list_gray.svg" alt="/icons/list_gray.svg" width="40px" />

Table of Contents

</aside>

정의


image.png

클러스터링은 데이터 분석 기법으로, 데이터 객체들을 유사성에 따라 그룹(클러스터)을 탐색하는 알고리즘을 의미합니다.

사전에 정의된 정적 그룹이 아닌, 데이터의 자연적인 구조를 탐색하여 동적으로 변하는 데이터를 그룹화하는 데에 알맞습니다.

<aside> <img src="/icons/dialogue_blue.svg" alt="/icons/dialogue_blue.svg" width="40px" />

클러스터가 도대체 뭐길래?

image.png

클러스터라는 개념은 참으로 애매합니다. 어디서부터 어디까지가 클러스터라고 부르는 지는 추상적인 개념이기 때문입니다.

하물며, 클러스터의 쓰임새는 분야를 초월하기 때문에, 분야마다 정의하고 쓰는 범주가 각기 다릅니다.

그러면 공간 혹은 게임에서는 어떻게 쓸 수 있을까?

답은 생각보다 간단합니다. 클러스터링은 월드를 논리적으로 분할하여, 지역 혹은 구역에 대한 인덱싱과 더불어서 경계를 구성할 수 있습니다.

다른 방식과 다르게, 클러스터링은 **“논리”**를 추구합니다. 스태틱 혹은 런타임에서 구성된 로직을 거쳐서 클러스터는 구성되거나 혹은 갱신될 수 있습니다.

또 한, 단순한 공간 분할 뿐만 아니라, 각 데이터의 통계적 분포를 가지고 게임 플레이를 동적으로 컨트롤 할 수 있습니다.

</aside>

K-means


kmeans.gif

클러스터를 구성하는 가장 대표적인 방법으로, K-means 클러스터링이 있습니다.

K-means 클러스터링은 데이터를 K개의 클러스터로 그룹화하는 알고리즘입니다. 각 클러스터는 중심점(centroid)으로 표현되며, 알고리즘은 데이터 포인트와 중심점 간의 거리를 최소화하는 방향으로 작동합니다.

로이드 알고리즘(Lloyd's Algorithm)

Lloyd's Algorithm = k-means

Lloyd's Algorithm = k-means

  1. 초기화