[머신러닝] 적정 군집수(k) 찾기 - Inertia value, 실루엣(silhouette) 계수

cybergangster·2022년 6월 30일
0

Machine Learning

목록 보기
1/5
post-thumbnail

K-Means 군집화 알고리즘을 사용할 때 고민이 필요한 부분 중 한 가지, 군집수(클러스터 수) k 결정. 군집분석은 비지도학습 방법 중 하나이고, 비지도학습에서는 보통 타겟값 혹은 목표값이 없는 데이터를 사용하기 때문에 군집화가 잘 되었는지, 혹은 적정 클러스터(군집)의 수는 몇개인지 판단하는 것이 어렵다. 분석가의 판단을 돕고, 최선의 결과를 도출하기 위한 방법 2가지, Inertia value & 실루엣(silhouette) 계수.

설명을 잘 해놓으셔서 미리 출처 남기고 시작. 출처 여기


1. K-Means 알고리즘 동작 원리

1) k개의 클러스터 중심(centroid)을 무작위로 지정
2) 데이터 포인트를 가장 가까운 클러스터 중심에 할당
3) 각각의 클러스터에 할당된 데이터 포인트의 평균으로 클러스터 중심을 다시 지정
4) 2)~3) 반복
5) 각각의 클러스터에 할당되는 데이터 포인트에 변화가 없을 때 알고리즘 종료

2. Inertia value

  • 각 클러스터의 중심에서 클러스터에 할당된 데이터 포인트간의 거리를 합산한 것
  • 군집이 얼마나 잘 응집되었는지 보여주는 지표
  • 값이 작을수록 응집도가 높게 군집화가 잘 되었다 평가할 수 있음
  • 데이터 전처리와 스케일링을 완료한 데이터셋을 이용하여 군집수(k)를 다양하게 적용하여 모델 학습 과정을 거친 후, Inertia value를 출력하여 군집수의 변화에 따라 응집도가 어떻게 달라지는지 확인할 수 있음

3. 실루엣(silhouette) 계수

  • 군집화의 정답(타겟값)을 모를 때 군집 응집도를 평가하는 방법
  • 모든 데이터 쌍(i,j)에 대해 거리 혹은 비유사도(dissimilarity)를 구하고, 이 결과를 이용하여 모든 데이터 i에 대해 다음 값을 구함
  • 데이터 i에 대하여 같은 군집의 데이터가 다른 군집의 데이터보다 더 가깝다면 그 데이터의 실루엣 계수는 양수(최대 1)
  • 반대로 다른 군집의 데이터가 같은 군집의 데이터보다 더 가깝다면 군집화가 잘못 된 경우라 볼 수 있음, 이때는 그 데이터의 실루엣 계수가 음수가 됨
  • 잘못된 군집화에서는 실루엣 계수가 음수인 데이터가 많아지므로 평균 실루엣 계수가 작아짐
  • 따라서 실루엣 계수가 클수록 좋은 군집화라 할 수 있음

4. Inertia value vs 실루엣 계수

  • 실루엣 계수는 클러스터 모양이 밀집되었을 때(원형일 때)는 성능이 좋지만, 모양이 복잡할 때는 밀집도를 활용한 평가가 잘 들어맞지 않은 문제가 있음(Inertia value도 같은 문제가 발생하긴 함), Inertial value를 구할 때보다 계산량이 많아 대용량 데이터셋으로 k개수 별로 계수를 구하는 것에 시간이 너무 오래걸리는 이슈도 존재
  • 밀집도 확인을 위해 굳이 2가지 군집 타당성 지표를 활용하는 것은 그리 효율적이지 못할 수 있음
  • 실루엣점수가 높은 k를 찾더라도 군집에 어떤 유의미한 발견이나 흥미로운 내용이 있는지 여전히 알 수 없는 문제 존재

0개의 댓글