K-means - K중심값

정의

K-means는 한국어로 K중심값으로 번역을 하곤한다. K-means에서 mean이 평균 즉, 중심값을 뜻하기 때문이다. 평균이 항상 중심값을 뜻하는 것은 아니므로 유의한다. K-means에서 “mean"이 뜻하는 것은 더 엄밀히 말하면 중심값이라기 보다는 대푯값을 말하는 것이다. 하지만 대부분 중심값을 대푯값으로 사용하는 경우가 때문에 크게 이상한 것은 아니다.

현업에서는 “케이민즈"로 원어를 그대로 발음하는 것이 통상적이다. 이 글에서는 현실과의 차이를 만들지 않기 위해서 앞으로 계속 K-means라고 표기한다.

K-means의 말을 분리해서 해석하면 다음과 같다.

  • K: 분할할 군집의 갯수. 사용하는 사람이 정해줘야 하는 값
  • means: 찾고 싶은 중심값들

위에서 말한 것 처럼 K-means에서 K는 사람이 입력을 해주어야 하며 알고리즘에서 자동으로 정해주지 않는다.
다만 적당히 반복 수행을 통해서 적절한 값을 찾는 방법들이 있긴하지만 활용을 위한 편법일 뿐이며 이 값은 결국 사람이 풀려는 문제와 문제를 풀기 위한 접근 방법에 따라 결정을 해줘야 한다.

K-means는 클러스터링기법에서 가장 흔하게 쓰이는 방법중 하나인데 그 이유는 알고리즘이 매우 쉽기 때문이다.

원리 및 과정 설명

  1. 데이터를 모두 연속형 값을 가지는 멤버를 가진 벡터로 바꾼다.
  2. 바꾼 벡터들을 이용해서 R차원 공간에 벡터를 나열하고 여기에서 K개의 중심점을 찾기 위해 초기 K개의 가상 중심점을 임의(랜덤 또는 의도적으로 정해서 결정)로 결정한다.
  3. 중심점을 기준으로 벡터들을 가장 가까운 중심점에 묶는다.
  4. 묶여진 K개의 그룹의 벡터 그룹들에서 중심점을 다시 재계산해서 구한다. 이 때 중심점은 이동을 할 수도 있고 하지 않을 수도 있다. 보통은 이동하게 된다.
  5. 이동한 중심점을 기준으로 다시 벡터들을 가장 가까운 중심점으로 다시 묶는다. 중심점이 이동할 것이다.
  6. 위의 과정을 중심점이 더이상 이동하지 않거나 정해진 횟수이상을 수행했다면 멈춘다.
  7. 최종 계산된 중심점 K개. 즉 중심점 벡터 K개가 이 알고리즘의 출력(output)이다.

장점 및 단점

단점

  • 매우 쉽고 단순하다.
  • 결과를 해석하기 쉽다.

단점

  • 연산력을 많이 소모하는 편이다.
  • 결과물 자체를 바로 활용하기 보다는 해석해서 인사이트를 얻고 그 결과를 재활용을 해야 한다.