공부일기/Machine-Learning

K-평균 군집화(k-means clustering, K-Means)

pipiiiiii 2024. 7. 19. 22:46

K-평균 군집화

K-평균 군집화는 비지도학습에 속하며, 데이터를 K개의 군집(Cluster)으로 묶는(Clusting) 알고리즘이다. 

군집이란 비슷한 특성을 지닌 데이터들을 모아놓은 그룹이고, 군집화는 군집으로 묶는 것을 말한다.   

그러므로 K-평균 군집화는 군집의 평균을 활용해 K개의 군집으로 묶는다는 것을 의미한다. 

 

 

K-평균 군집화 과정

    1. 몇 개의 덩어리로 클러스터링(Clustering)을 할 것인지 정한다. 
      우리가 가장 먼저 해야 할 일은 몇 개의 K로 클러스터링(Clustering)을 할 것인지 결정하는 것이다. 
      개수는 원하는 수로 정하면 된다.
    2. 정한 개수만큼 중심점(K값)을 정한다.
      정한 개수만큼 원하는 아무 값으로 중심점을 정한다. 이때 정하는 중심점을 centroid(중심)이라고 부른다.



    1. 각 점마다 가장 가까운 centroid를 정한다. 
      가장 가까운 centroid를 정하면 그래프에서 매핑을 한다. 



    1. centroid를 이동한다. 
      매핑된 점들을 바탕으로 centroid를 이동한다. 
      이 때, 새로 만들어지는 centroid는 같은 색으로 매핑된 점들의 평균이 된다. 



    1. 3번에서 4번까지의 과정을 새로 매핑되지 않을 때까지 반복한다. 



  1. 새로 매핑된 점들을 바탕으로 centroid를 이동시킨다. 
     

 

K- 평균 군집화의 최적의 K값 탐색 방법 

K값을 탐색하는 방법에는 엘보우 방법과 실루엣 분석이 있다. 

 

 

엘보우 방법

엘보우 방법은 K-평균 군집화 알고리즘을 실행할 때, K의 개수를 점차 증가시키면서 클러스터링을 수행하고 이에 따른 SSE(Sum of Squared Errors) 값을 계산해 그래프로 나타내어 최적의 K값을 선택하는 방법이다. 

 

SSE란 각 데이터 포인트와 해당 클러스터 중심점 사이의 거리를 제곱한 값의 합을 의미한다. 

SSE 값이 작을수록 클러스터링의 성능이 좋다고 판단할 수 있다. 

 

엘보우 방법에서는 K의 개수를 증가시키면서 SSE 값을 계산하고 이를 그래프로 나타내는데 SSE 값이 감소하는 정도가 급격하게 줄어드는 지점을 최적의 K값으로 선택한다. 

그래프로 보면 팔꿈치 모양과 유사하여 '엘보우'라고 부르게 됐다. 

위 그래프에서는 팔꿈치 모양을 이루는 지점인 K = 3이 최적의 K값이라고 할 수 있다.

 

 

실루엣 분석

실루엣 분석은 각 데이터 포인트가 속한 클러스터의 일관성을 측정하여 최적의 K값을 찾는 방법이다. 

데이터 포인트의 실루엣 계수를 계산하여 전체 데이터 포인트의 평균 실루엣 계수를 구하는데 실루엣 계수는 클러스터의 일관성을 나타내며, 값이 높을수록 결과가 좋다는 것을 의미한다. 

위 그래프에서는 가장 높은 실루엣 점수를 가지는 K = 2가 최적의 K값이라고 할 수 있다. 

 

 

엘보우 방법과 실루엣 분석 중 무엇이 더 좋을까

엘보우 방법과 실루엣 분석은 각각 클러스터 내부의 분산과 일관성을 측정하여 최적의 K값을 찾는 방식이고 이를 통해 적절한 K값을 찾아 클러스터링 결과를 더욱 정확하게 만들 수 있다. 

 

어떤 방식으로 K값을 정하는지는 사용자의 판단에 따라 다르기 때문에 여러 가지 방법을 사용해 최적의 K값을 찾는 것이 좋지만 만일 두 방식 중 고민이라면 둘 다 사용해 최적의 K값을 탐색하는 것이 좋다. 

 

 

K-평균 군집화 거리 측정 방식 

K-평균 군집화를 진행할 때 중심점과 거리가 가까운 점들끼리 묶이게 되는데 이 때 거리를 어떤 방식으로 측정하는지를 알아보고자 한다. 

 

거리 측정 방식으로는 맨하탄 거리(Manhattan distance)와 유클리디안 거리(Euclidean distance) 측정 방식을 이용한다. 

 

맨해튼 거리는 각 축에 대해 수직으로 이동하면서 계산하는 거리 측정 방식이고, 유클리디안 거리는 가장 짧은 거리를 계산하는 거리 측정 방식이다. 

 

 

K-평균 군집화와 K-최근접 이웃

K-평균 군집화와  K-최근접 이웃은 비슷하다면서도 다르다.

두 알고리즘의 유사점은 특정 데이터를 '거리' 기반으로 그룹화해서 나타낸다는 점이다. 

이때 '거리'는 유클리디언 거리를 의미하는데 두 알고리즘 모두 거리가 가까울수록 특성의 유사도가 높다는 것을 의미한다. 

 

두 알고리즘의 큰 차이점은 분류와 군집, 지도학습과 비지도학습이라는 점, 그리고 레이블의 유무다.  

위 이미지를 통해 레이블의 유무 차이점을 더 쉽게 설명하자면 K-최근접이웃(K-NN)은 미리 레이블이 붙어 있는 데이터들을 학습해 이를 바탕으로 새로운 데이터에 대해 분류를 수행하는 것이고, K-평균 군집화(K-Means)는 레이블을 모르더라도 비슷한 특징을 가진 데이터끼리 묶어주는 군집을 수행하는 것을 알 수 있다. 

 

 

K-평균 군집화 장단점

장점

  • 쉽고 빠르게 연산이 가능하다
  • 지역 최소값(local minimum)으로 수렴한다. 

단점

  • K값을 임의로 정해야하고, 처음의 centroid도 임의로 정해야 한다. 또한 처음 centroid를 어떻게 정하는지에 따라 결과가 민감하게 바뀐다.
  • Outlier에 민감하다. 몇 개의 점이 굉장히 멀리 떨어져있다면 이에 맞춰 centroid를 정하기 때문이다.
  • 원형 또는 구형의 cluster만 찾을 수 있다. cluster의 모양이 원형이 아닌 경우에는 정확한 결과를 도출하지 못한다. 

 

 

K- 평균 군집화 코드 공부

https://github.com/DIB-PP/Machine-Learning

 

GitHub - DIB-PP/Machine-Learning

Contribute to DIB-PP/Machine-Learning development by creating an account on GitHub.

github.com

 

 

 

 

 

 

 

 

 

참고 자료