K-Means 군집화
- 비지도 학습의 일종으로, 데이터를 여러 그룹으로 나누는 클러스터링 알고리즘 중 하나입니다.
- 데이터 마이닝과 패턴 인식 분야에서 널리 사용되는 클러스터링 알고리즘 중 하나입니다.
- 데이터 분석, 이미지 처리, 자연어 처리, 이상치 탐지 등 다양한 분야에서 사용됩니다.
알고리즘
- 입력된 데이터의 유사성을 기반으로 클러스터를 생성합니다.
- 데이터들 간의 유사성은 거리 측정을 통해 계산됩니다.
단계
- 초기화 단계
- 클러스터링을 위해 데이터 포인트들 중에서 K개의 초기 중심점(centroid)을 랜덤하게 선택합니다.
- 할당 단계
- 각 데이터 포인트들은 초기 중심점 중에서 가장 가까운 중심점에 할당됩니다.
- 이렇게 할당된 데이터 포인트들을 하나의 클러스터로 묶습니다.
- 갱신 단계
- 클러스터링된 데이터 포인트들의 중심점을 새롭게 계산합니다.
- 이렇게 갱신된 중심점들을 바탕으로 새로운 클러스터를 생성합니다.
- 반복
- 2,3단계를 반복 수행하면서 클러스터링을 수행합니다.
- 더 이상 중심점이 변하지 않을 때까지 수행됩니다.
주의
- 데이터를 K개의 클러스터로 묶는데, K는 사용자가 지정해야 합니다.
- 적절한 K값을 찾기 위해서는 여러 가지 방법을 사용할 수 있습니다.
- 예를 들어, elbow method를 사용하여 적정한 K값을 찾을 수 있습니다.
- elbow method 는 클러스터 수 K를 변화시켰을 때, 왜곡 점수가 급격하게 줄어드는 지점을 찾는 방법입니다.
- 한계는 데이터가 고르게 분포되어 있다면 왜곡 점수의 변화가 작으므로 이용하기 힘들다.
- 간단하고 빠른 알고리즘을 널리 사용되고 있습니다.
- 그러나 클러스터링 결과는 초기 중심점의 랜덤한 선택에 따라 영향을 받을 수 있기 때문에, 여러 번 실행하여 결과를 평균내는 등의 방법으로 결과를 개선할 수 있습니다.