Broccoli's House
#3-(5) 군집 알고리즘 : k-평균 군집(k-means) 본문
※ 이 글의 내용은 O'REILLY의 <파이썬 라이브러리를 활용한 머신러닝> 책을 기반으로 한다.
군집 알고리즘 : k-평균 군집(k-means)
- 군집
- k-평균 군집
- 먼저, 이 알고리즘은 데이터가 위치한 공간에서 클러스터의 중심이 될 k개의 클러스터 중심(Cluster Center, centroid)을 무작위로 선택한다. 그리고 각각의 데이터 포인트들을 자신과 가장 가까운 클러스터 중심에 할당한다. 같은 클러스터 중심에 할당된 데이터 포인트들의 평균을 구하고, 구한 평균 값을 2번째 클러스터 중심으로 설정한다. 다시 각각의 데이터 포인트들을 가장 가까운 2번째 클러스터 중심에 할당하고, 그 평균 값으로 3번째 클러스터 중심을 설정한다. 이것을 각 클러스터 중심에 속한 데이터 포인트들이 변하지 않을 때까지 반복한다. 즉, 데이터 자신이 속한 클러스터가 변하지 않을 때까지 반복하는 것이다.
- 군집은 각 데이터 포인트가 레이블을 가진다는 면에서 분류와 비슷해 보일 수 있다. 그러나 특정한 의미가 있는 분류에서의 레이블과는 다르게, 클러스터는 단지 데이터의 묶음일 뿐 자체적인 의미를 가지고 있지는 않다.
- k-평균 군집 알고리즘에서 각 클러스터를 정의하는 것이 중심 하나이고, 그 중심에서 각 데이터 포인트간의 거리가 가까운 것을 클러스터로 묶기 때문에 클러스터는 둥근 형태로 나타난다. 이러한 이유로 k-평균 알고리즘은 비교적 간단한 형태의 데이터를 구분할 수 있다. 또한 k-평균은 모든 클러스터의 반경이 똑같고, 모든 방향이 중요하다고 가정하기 때문에, 클러스터 중심 사이의 딱 중간에 경계를 그린다. 따라사 위와 같은 복잡한 모양의 데이터에는 성능이 매우 나쁘다.
k-평균 군집 알고리즘 평가
- 장점 : 비교적 이해하기 쉽고 구현하기도 쉽다. 또한 비교적 빠르고 대용량 데이터 세트에도 잘 작동하여 가장 인기있는 군집 알고리즘이다.
- 단점 : 평균이 정의되어야만 적용가능하고, 무작위 초기화를 사용하여 알고리즘의 출력이 난수 초깃값에 따라 달라진다. 가장 큰 단점은 클러스터의 모양을 원으로 가정하고 있기 때문에 활용 범위가 비교적 제한적이며, 찾으려 하는 클러스터의 개수(k)를 지정해야만 한다는 것이다. (실제로는 알 수 없다.)
'공부 > 머신러닝' 카테고리의 다른 글
#3-(7) 군집 알고리즘 : DBSCAN (0) | 2018.02.04 |
---|---|
#3-(6) 군집 알고리즘 : 병합 군집 (0) | 2018.02.04 |
#3-(3) 비지도 변환 : 비음수 행렬 분해(NMF) (0) | 2018.02.03 |
#3-(2) 비지도 변환 : 주성분 분석(PCA) (0) | 2018.02.03 |
#3-(1) 비지도 학습 (0) | 2018.02.03 |