CONCEPTS / CLUSTERING / SILHOUETTE SCORE
Silhouette score(실루엣 점수)로 군집이 잘 나뉘었는지 읽기
같은 군집 평균거리와 가장 가까운 다른 군집 평균거리를 비교하며 실루엣 계수의 계산, 해석과 군집 수 비교의 주의점을 익힙니다.
실루엣은 한 점이 자기 무리에 잘 어울리는지 묻는다
같은 무리의 점들과는 가깝고, 다른 무리의 점들과는 멀다면 그 점은 지금 군집에 자연스럽게 들어가 있다.
운동장에서 두 반을 나누어 세운다고 생각해 보자
이름표가 없는 학생들을 비슷한 위치끼리 두 반으로 나누었다고 생각해 보자. 한 학생이 자기 반 친구들 가까이에 있고 옆 반과는 멀리 떨어져 있다면, 반을 꽤 자연스럽게 나눈 것처럼 보인다.
반대로 그 학생이 두 반의 딱 중간에 서 있다면 어느 반인지 애매하다. 더 심하게는 자기 반보다 옆 반 학생들과 훨씬 가까울 수도 있다. 이때는 현재 반 배정이 어색하다고 의심할 수 있다.
Silhouette coefficient(실루엣 계수)는 이 생각을 점 하나마다 숫자로 만든다. 이름은 어렵지만 묻는 질문은 두 개뿐이다.
- 자기 무리 안에서는 얼마나 가까운가?
- 가장 가까운 다른 무리와는 얼마나 떨어져 있는가?
먼저 아래 도구에서 세 장면을 차례로 눌러 보자. 각 점도 직접 선택할 수 있다. 실선과 점선의 길이가 어떻게 달라지는지 먼저 보고, 숫자는 그다음에 읽으면 된다.
두 군집 사이에 넓은 빈 공간이 있어 선택한 점이 자기 군집에 훨씬 가깝습니다. 아래 점을 직접 선택해 비교할 수 있습니다.
선택한 점A3
s(i) = +0.71- 같은 군집 평균거리 a(i)
- 2.24
- 가장 가까운 다른 군집 b(i)
- 7.71
- 가장 가까운 다른 군집
- 군집 B
자기 군집의 점들이 훨씬 가깝습니다. 현재 묶음에 잘 어울리는 점입니다.
a는 자기 반 친구들까지의 평균거리다
선택한 점을 라고 하자. 는 점 에서 같은 군집의 나머지 모든 점까지 거리를 구한 뒤 평균한 값이다. 자기 자신까지의 거리는 넣지 않는다.
가 작으면 자기 군집 안에 바짝 모여 있다는 뜻이다. 가 크면 자기 군집의 다른 점들과 멀리 떨어져 있다는 뜻이다. 같은 반 안에서 친구들과 얼마나 잘 어울려 서 있는지를 재는 값이라고 생각하면 쉽다.
b는 가장 가까운 옆 반까지의 평균거리다
다른 군집이 여러 개라면 점 에서 각 군집의 모든 점까지 평균거리를 따로 구한다. 그 가운데 가장 작은 값을 로 정한다.
따라서 는 아무 다른 점 하나까지의 최단거리가 아니다. 점 하나가 아니라 “가장 가까운 다른 군집 전체”까지의 평균거리다. 옆 반 후보가 여러 개라면 가장 헷갈리는 반 하나를 고르는 셈이다.
b에서 a를 빼면 자기 군집이 얼마나 유리한지 보인다
Silhouette coefficient(실루엣 계수)는 두 평균거리의 차이를 -1과 1 사이로 맞춘 값이다.
- 점 가 현재 군집에 얼마나 자연스럽게 들어가 있는지 나타내는 Silhouette coefficient(실루엣 계수)
- 단위: 없음
- 점 에서 같은 군집의 나머지 점들까지의 평균거리
- 단위: 입력 좌표의 거리 단위
- 점 에서 각 다른 군집까지 구한 평균거리 가운데 가장 작은 값
- 단위: 입력 좌표의 거리 단위
- 실루엣 계수를 계산하는 현재 관측점의 식별자
- 단위: 없음
- 두 평균거리 가운데 더 큰 값을 고르는 표준 최댓값 함수
- 단위: 입력 좌표의 거리 단위
분자 가 양수라면 다른 군집보다 자기 군집이 가깝다. 음수라면 자기 군집보다 다른 군집이 더 가깝다. 분모는 이 차이를 거리 크기에 맞게 조절하므로 서로 다른 자료에서도 점수가 -1과 1 사이에 머문다.
예를 들어 , 이면 이다. 자기 군집 평균거리가 훨씬 작으므로 잘 묶인 점이다. 와 가 거의 같으면 점수는 0에 가까워지고, 이면 점수는 음수가 된다.
점수는 세 방향으로 읽으면 충분하다
- 1에 가까움: 자기 군집 안에서는 가깝고 다른 군집과는 멀다. 현재 군집에 잘 어울린다.
- 0에 가까움: 자기 군집과 가장 가까운 다른 군집까지의 거리가 비슷하다. 군집 경계에 있는 점일 수 있다.
- 음수: 자기 군집보다 다른 군집이 더 가깝다. 현재 배정을 다시 살펴볼 신호다.
0.5 같은 숫자를 모든 자료에 똑같이 적용하는 절대 합격선은 없다. 거리 규칙, 특성 수, 군집 모양과 데이터 밀도에 따라 점수 분포가 달라진다. 먼저 부호와 0에서 얼마나 떨어졌는지 읽고, 같은 조건의 후보끼리 비교하는 편이 안전하다.
전체 점수는 모든 점의 실루엣을 평균한다
각 점의 를 모두 계산한 뒤 평균하면 전체 Silhouette score(실루엣 점수)가 된다. 점이 개라면 전체 점수는 인라인 관계 로 나타낼 수 있다. 여기서 는 전체 평균 실루엣, 은 점의 수이며 둘 다 단위가 없다.
평균이 높으면 많은 점이 자기 군집에 더 가깝다는 뜻이다. 하지만 평균 하나만 보면 소수의 음수 점을 놓칠 수 있다. 전체 평균과 함께 점별 실루엣도 살펴보는 이유다.
같은 데이터에서 군집 수 를 2, 3, 4처럼 바꾸어 볼 때는 다음 순서를 쓴다.
- 같은 데이터와 같은 Feature scaling(특성 척도 조정)을 사용한다.
- 같은 Distance metric(거리 측도)을 사용한다.
- 각 에서 군집화한 뒤 전체 실루엣 평균과 음수 점의 위치를 비교한다.
- 점수가 높아도 각 군집을 실제 의미로 설명할 수 있는지 확인한다.
가장 높은 점수의 가 언제나 정답은 아니다. 한 고객군을 지나치게 잘게 나누거나, 서로 다른 시장 상태를 하나로 합쳐도 업무 목적에는 맞지 않을 수 있다. 실루엣은 군집 구조를 평가하는 증거 하나이지 군집의 의미를 대신하는 답이 아니다.
거리를 바꾸면 실루엣도 바뀐다
위 도구는 Euclidean distance(유클리드 거리)를 사용한다. 현실 데이터에서는 다음 조건도 함께 확인해야 한다.
- 매출은 원 단위이고 비율은 0과 1 사이라면 숫자가 큰 특성이 거리를 지배할 수 있다. Feature scaling(특성 척도 조정)이 먼저 필요하다.
- 길게 휘어진 Non-convex cluster(비볼록 군집)는 자연스러운 한 무리여도 중심 주변에 둥글게 모이지 않아 점수가 낮을 수 있다.
- Outlier(이상치)는 자기 군집 평균거리와 다른 군집 평균거리를 모두 크게 흔들 수 있다.
- 밀도와 크기가 크게 다른 군집은 같은 거리 규칙으로 공정하게 비교하기 어려울 수 있다.
- 군집이 하나뿐인 에서는 비교할 다른 군집이 없으므로 실루엣을 계산할 수 없다.
- 점 하나만 있는 군집은 같은 군집 평균거리를 제대로 만들 수 없어 보통 그 점의 실루엣을 0으로 둔다.
핵심만 다시 정리하기
실루엣은 점 하나를 가운데 놓고 자기 군집 평균거리 와 가장 가까운 다른 군집 평균거리 를 비교한다. 가 훨씬 크면 1에 가까워지고, 두 거리가 비슷하면 0에 가까워지며, 다른 군집이 더 가까우면 음수가 된다.
Gaussian Mixture Model(가우시안 혼합 모델, GMM)처럼 군집을 만드는 모델을 먼저 익히고 싶다면 겹치는 데이터를 소속 확률로 나누는 GMM도 함께 볼 수 있다. GMM이 “어떻게 묶을까?”를 다룬다면 실루엣은 “그 묶음이 거리 기준으로 얼마나 자연스러운가?”를 점검한다.
실루엣 점수가 높으면 군집 수를 바로 확정해도 되는가?
아니다. 같은 데이터와 거리 규칙에서 후보를 비교하는 근거로는 유용하지만, 군집의 실제 의미와 반복 실행 안정성도 함께 확인해야 한다.
음수인 점은 바로 지워야 하는가?
아니다. 잘못 배정된 점일 수도 있지만, 두 군집 사이의 중요한 경계 사례나 이상치일 수도 있다. 원자료와 군집 목적을 먼저 확인한다.
b는 가장 가까운 다른 점까지의 거리인가?
아니다. 다른 군집별로 그 군집의 모든 점까지 평균거리를 구한 뒤, 그 평균이 가장 작은 군집을 고른 값이다.