K-Means Clustering의 정의
K-Means Clustering의 작동 방법
K-Means++ Clustering의 정의
K-Means Clustering을 활용할 수 있다.
K-Means Clustering을 실제로 구현할 수 있다.
K-Means Clustering의 단점을 보완하는 방법을 이해할 수 있다. (K-Means++)
클러스터링 알고리즘 중 가장 유명한 알고리즘으로 클러스터링이 가능한지 확인하기 위해 계속 사용됨
기본적으로 2개의 추가적인 input이 필요함
클러스터의 개수: 현재 데이터를 보고 어떤 값이 적절한지 결정
initial point: 클러스터들의 가운데 점에 대한 포인트 값이 주어져야 k-means 클러스터링 알고리즘이 시작됨
알고리즘
각각의 샘플들에 대해 가장 가까운 클러스터의 중심지에 해당되는 인덱스를 클러스터 인덱스로 할당
클러스터 인덱스별로 따로 묶인 샘플들에 대해 평균을 계산
중심점의 위치가 바뀌게 되고 그 과정을 계속 반복 (각각의 샘플들이 클러스터 인덱스가 바뀌지 않을 때까지 계속 반복)
k-means 클러스터링의 장점
새로운 테스트 샘플이 주어졌을 때 곧바로 클러스터 인덱스를 추정 가능
알고리즘 적용시 주어진 모든 데이터를 고려할 필요가 없고 10% 정도 데이터를 무작위로 추출해서 적용해도 유사한 결과값을 보여줌
단점
여러 번 반복적으로 구동되어 계산량이 큰 편
매 과정마다 반복적으로 샘플들이 어떤 클러스터에 속하는지 거리 비교를 해야 함
여러 개의 클러스터들에 대해 각각의 클러스터의 중심지를 계산하기 위해 평균(중심점)을 찾아내야 함
따라서 고려하는 데이터가 많을수록 k-means 클러스터링의 동작 속도가 점점 느려지게 됨
활용 분야
옷의 사이즈를 분류할 때
어느 정도 유사한 사이즈의 사람들의 옷을 묶어 하나의 옷으로 제작하여 가능한 많은 사람들의 체형에 적합하도록 제작
여러 사람의 체형을 분석하고 그 정보를 기반으로 k-means 클러스터링을 구동
Vector Quantization
문제점
제일 처음 각각의 클러스터에 대응되는 중심 포인트를 선택하는데 문제점이 발생
만약 처음 선택된 중심지가 잘못 선택된 경우 잘못된 결과를 출력할 수 있음
이러한 문제를 k-means++ 클러스터링 알고리즘으로 해결함
K-Means++ Clustering의 추출 과정
초반에 무작위로 4개의 점을 중심지로 사용하지 않음
확률적으로 각 클러스터의 중심지를 선정
한꺼번에 뽑지 않고 제일 먼저 한 개를 무작위로 추출
무작위로 추출한 점의 중심지에서 멀면 멀수록 더 많은 확률로 뽑히도록 설계
추출이 계속될수록, 기존 선택된 중심지들에서 더 멀수록 높은 확률