K-means - K중심값
정의
K-means는 한국어로 K중심값으로 번역을 하곤한다. K-means에서 mean이 평균 즉, 중심값을 뜻하기 때문이다.
평균이 항상 중심값을 뜻하는 것은 아니므로 유의한다. K-means에서 “mean"이 뜻하는 것은 더 엄밀히 말하면 중심값이라기 보다는 대푯값을 말하는 것이다. 하지만 대부분 중심값을 대푯값으로 사용하는 경우가 때문에 크게 이상한 것은 아니다.
현업에서는 “케이민즈"로 원어를 그대로 발음하는 것이 통상적이다. 이 글에서는 현실과의 차이를 만들지 않기 위해서 앞으로 계속 K-means라고 표기한다.
K-means의 말을 분리해서 해석하면 다음과 같다.
- K: 분할할 군집의 갯수. 사용하는 사람이 정해줘야 하는 값
- means: 찾고 싶은 중심값들
위에서 말한 것 처럼 K-means에서 K는 사람이 입력을 해주어야 하며 알고리즘에서 자동으로 정해주지 않는다.
다만 적당히 반복 수행을 통해서 적절한 값을 찾는 방법들이 있긴하지만 활용을 위한 편법일 뿐이며 이 값은 결국 사람이 풀려는 문제와 문제를 풀기 위한 접근 방법에 따라 결정을 해줘야 한다.
K-means는 클러스터링기법에서 가장 흔하게 쓰이는 방법중 하나인데 그 이유는 알고리즘이 매우 쉽기 때문이다.
원리 및 과정 설명
- 데이터를 모두 연속형 값을 가지는 멤버를 가진 벡터로 바꾼다.
- 바꾼 벡터들을 이용해서 R차원 공간에 벡터를 나열하고 여기에서 K개의 중심점을 찾기 위해 초기 K개의 가상 중심점을 임의(랜덤 또는 의도적으로 정해서 결정)로 결정한다.
- 중심점을 기준으로 벡터들을 가장 가까운 중심점에 묶는다.
- 묶여진 K개의 그룹의 벡터 그룹들에서 중심점을 다시 재계산해서 구한다. 이 때 중심점은 이동을 할 수도 있고 하지 않을 수도 있다. 보통은 이동하게 된다.
- 이동한 중심점을 기준으로 다시 벡터들을 가장 가까운 중심점으로 다시 묶는다. 중심점이 이동할 것이다.
- 위의 과정을 중심점이 더이상 이동하지 않거나 정해진 횟수이상을 수행했다면 멈춘다.
- 최종 계산된 중심점 K개. 즉 중심점 벡터 K개가 이 알고리즘의 출력(output)이다.
장점 및 단점
단점
단점
- 연산력을 많이 소모하는 편이다.
- 결과물 자체를 바로 활용하기 보다는 해석해서 인사이트를 얻고 그 결과를 재활용을 해야 한다.