Machine Learning/Unsupervised Learning

[Unsupervised Learning][Clustering] K-means (K 평균)

데이터 세상 2022. 10. 4. 17:52

K-means (K 평균)

데이터 간의 거리를 사용해 가까운 거리에 있는 데이터끼리 하나의 클래스로 묶는 알고리즘

거리를 계산하기 위해 데이터는 수치화된 데이터야 함

 

데이터를 k개의 클러스터로 분류

1. 사용자로부터 입력받은 k의 값에 따라, 임의로 클러스터 중심(centroid) k개를 설정한다.

2. k개의 클러스터 중심으로부터 모든 데이터가 얼마나 떨어져 있는지 계산한 후에, 가장 가까운 클러스터 중심을 각 데이터의 클러스터로 정한다.

3. 각 클러스터에 속하는 데이터들의 평균을 계산해서 클러스터 중심을 옮겨준다.

4. 보정된 클러스터 중심을 기준으로 2, 3단계를 반복한다.

5. 더이상 클러스터 중심이 이동하지 않으면 알고리즘을 종료한다.

 

출처: https://bskyvision.com/entry/k-means-%ED%81%B4%EB%9F%AC%EC%8A%A4%ED%84%B0%EB%A7%81

 

출처: https://bskyvision.com/entry/k-means-%ED%81%B4%EB%9F%AC%EC%8A%A4%ED%84%B0%EB%A7%81

 

출처: https://bskyvision.com/entry/k-means-%ED%81%B4%EB%9F%AC%EC%8A%A4%ED%84%B0%EB%A7%81

 

출처: https://bskyvision.com/entry/k-means-%ED%81%B4%EB%9F%AC%EC%8A%A4%ED%84%B0%EB%A7%81

 

장점

  • 시간 복잡도가 O(n)으로 빠른 편
  • 이해하기 쉽고 구현이 쉽고 비교적 구현이 빨라 많이 사용됨
  • 대용량 데이터셋에서도 잘 작동

 

단점

  • 초기에  cluster의 숫자인 "K"값을 설정해 주어야 함
  • 선택된 K값, 초기 랜덤하게 설정된 centroid의 위치가 clustering 결과에 큰 영향을 끼침
  • 클러스터의 모양을 가정하고 있어 활용 범위가 제한적
  • Outlier(이상치) data 분석에 취약

 

K-means 실패

https://ssoondata.tistory.com/28

군집이 모여있는 모양이 동글한 모양이 아니면 잘 안 나누어짐

모든 클러스터의 반경이 똑같다고 가정해서 클러스터 중심 사이의 정확히 중간에 경계를 그리기 때문에 밀도가 다른 경우 잘 안 나누어짐

 

밀도가 다른 클러스터

서로 모여 있는 정도가 다른 경우, 클러스터0과 클러스터1은 중심에서 멀리 떨어진 포인트도 포함함 

 

원형이 아닌 클러스터

원형이 아닌 클러스터를 구분하지 못함

대각선 모양으로 3개가 선택되어야 하지만 떨어져있는 것이 같은 클러스터로 묶임

 

복잡한 모양의 클러스터

곡선 2개로 선택되어야 하지만 원형모양으로 잘못 클러스터링 함

 

K-means 실패 극복은 

복잡한 형태의 경우 클러스터를 여러개로 만들어 합쳐 구분할 수 있음


 

References

 

반응형