칼린스키-하라바츠 지수(Calinski-Harabasz Index)란? AI에서 군집 안팎의 퍼짐을 비교하는 지표
TL;DR
칼린스키-하라바츠 지수는 군집 사이가 얼마나 떨어지고 각 군집 내부가 얼마나 뭉쳤는지를 함께 비교하는 내부 평가 점수입니다. 정답 라벨 없이 수치 특징과 군집 라벨로 계산하며 같은 데이터에서 보통 높은 값을 더 선명하게 나뉜 군집으로 읽습니다. 다만 원형에 가까운 군집을 선호하는 경향이 있어 최고 점수만으로 실제 정답이나 업무 가치를 확정하지는 않습니다.
핵심 3줄 요약
- 핵심 1
군집 안팎의 분산 비율입니다. 군집 중심이 전체 중심에서 벌어진 정도와 각 점이 자기 군집 중심에 모인 정도를 비교합니다. - 핵심 2
같은 데이터의 후보를 비교합니다. 군집 수가 다른 결과를 나란히 보되, 입력 특징과 전처리를 바꾸면 점수 자체도 달라집니다. - 핵심 3
높을수록 항상 정답은 아닙니다. 볼록한 군집을 선호하므로 밀도 기반 군집이나 실제 업무 기준도 따로 검토해야 합니다.
이 글에서 다룰 내용
- 칼린스키-하라바츠 지수의 한 문장 정의
- 고객 문의 묶음으로 보는 쉬운 예시
- 군집 안팎의 제곱거리와 보정 항
- 높은 값과 볼록한 군집 선호의 해석
- 실루엣·데이비스-볼딘·K-means 관성과의 차이
- 같은 데이터에서 군집 수를 비교하는 순서
- 노이즈·척도·데이터 변경의 주의점
- AI 초보자가 자주 묻는 질문
칼린스키-하라바츠 지수를 한 문장으로 정의하면 무엇인가요?
칼린스키-하라바츠 지수(Calinski-Harabasz Index, CH 지수)는 군집 사이의 제곱거리 기반 퍼짐을 군집 내부의 제곱거리 기반 퍼짐으로 나눠 군집화 결과를 평가하는 값입니다.
scikit-learn은 이를 분산 비율 기준(Variance Ratio Criterion)이라고도 부릅니다. 결과를 계산할 때 필요한 것은 표본의 수치 특징과 각 표본에 붙은 예측 군집 라벨입니다. 실제 정답 라벨은 입력하지 않습니다.
같은 입력 데이터에서 여러 후보를 비교하면 안쪽은 모이고 군집 사이 중심은 멀어지는 분할에 높은 값을 주는 방향으로 작동합니다. 그렇다고 점수에 통과선이 정해져 있거나 높은 결과가 자동으로 사람에게 유용한 범주라는 뜻은 아닙니다.
한 줄 정리: CH 지수는 전체 중심과 군집 중심 사이의 퍼짐을 군집 내부 퍼짐과 비교하는 내부 평가 점수입니다.
쉬운 예시로 이해해 볼까요?
감자나라ai님이 고객 문의의 길이와 처리 시간을 수치 특징으로 삼아 문의를 묶는다고 가정하겠습니다. 한 결과는 문의를 두 묶음으로, 다른 결과는 세 묶음으로 나눕니다. 이때 아직 정답 주제 라벨은 없습니다.
각 묶음 속 문의들이 자기 중심 부근에 모이고 서로 다른 묶음의 중심은 확실히 떨어져 있다면 군집 안 퍼짐에 비해 군집 사이 퍼짐이 커집니다. CH 지수는 이런 분리를 수치로 비교합니다.
반대로 한 묶음의 문의가 넓게 흩어져 있는데 다른 묶음과 중심도 가깝다면 점수가 유리하지 않습니다. 같은 입력을 쓰는 두 결과라도 군집 수에 따른 보정이 들어가므로 단순히 군집을 잘게 쪼갠 결과가 항상 이기는 계산은 아닙니다.
점수를 낸 뒤에는 실제 문의 내용도 읽어야 합니다. 처리 시간과 문장 길이로 갈린 묶음이 업무상 배송·환불 주제와 같으리라는 보장은 없습니다. 수치상 분리와 주제의 쓸모는 별개의 확인 항목입니다.
쉬운 예시: 같은 문의를 여러 방식으로 묶고, 묶음 내부가 얼마나 모였는지와 각 묶음 중심이 전체에서 얼마나 떨어졌는지를 함께 비교합니다.
왜 AI에서 칼린스키-하라바츠 지수가 중요한가요?
정답 없는 군집 결과를 비교합니다
군집화는 사람의 정답 라벨 없이 유사한 표본을 나누는 일이 많습니다. CH 지수는 예측 라벨과 원래 특징만으로 계산되므로 후보 모델의 분리 정도를 점검할 출발점이 됩니다.
정답을 모르더라도 평가 숫자를 낼 수 있다는 장점은 분명합니다. 다만 입력에 담기지 않은 의미나 업무 목적까지 측정해 주지는 못합니다. 먼저 무엇을 비슷한 것으로 볼지 특징 설계를 정해야 합니다.
군집 수 후보를 같은 조건에서 봅니다
K-means에서 군집 수를 달리하며 결과를 얻었다면 동일한 표본과 변환된 특징으로 각각의 CH 점수를 기록할 수 있습니다. 군집 수가 달라질 때 군집 사이와 안의 퍼짐이 어떻게 바뀌는지 함께 읽는 방식입니다.
후보마다 평가 대상 표본을 바꾸거나 한쪽에만 특징 스케일링을 하면 숫자를 공정하게 비교하기 어렵습니다. 데이터셋과 전처리, 결측 처리 기준을 고정한 다음에 차이를 봅니다.
점수가 선호하는 군집 모양을 드러냅니다
scikit-learn 안내는 CH 지수가 밀도 기반 군집보다 볼록한 군집에서 일반적으로 높게 나올 수 있다고 설명합니다. 안팎 퍼짐을 중심과 제곱거리로 나타내는 계산의 성격과 연결되는 주의점입니다.
길게 휘어진 띠 모양이나 고리처럼 중심 하나로 설명하기 어려운 묶음에서는 숫자가 구조의 장점을 충분히 보여주지 못할 수 있습니다. 다른 지표뿐 아니라 대표 표본과 분포 그림도 봐야 합니다.
핵심 인사이트: CH 지수는 정답 없는 군집 결과의 비교 도구이지, 데이터가 가진 실제 범주의 존재를 인증하는 장치는 아닙니다.
칼린스키-하라바츠 지수는 어떻게 계산하나요?
각 군집 중심과 전체 중심을 구합니다
먼저 모든 표본의 평균인 전체 중심과 각 군집에 속한 표본의 평균인 군집 중심을 구합니다. 군집마다 표본 수가 다를 수 있으므로 군집 중심이 전체 중심에서 벗어난 정도를 셀 때 그 군집의 표본 수도 반영합니다.
기준이 되는 좌표가 달라지면 중심과 거리도 달라집니다. 예를 들어 한 특징의 단위가 다른 특징보다 훨씬 크다면 해당 축이 퍼짐 계산을 좌우할 수 있으니 전처리를 먼저 결정합니다.
군집 사이 퍼짐을 모읍니다
군집 중심과 전체 중심 사이의 거리 제곱을 각 군집의 표본 수에 맞게 합칩니다. 이는 군집별 중심들이 전체 중심 주위에 얼마나 흩어졌는지를 나타내는 군집 사이 퍼짐입니다.
서로 다른 모든 표본 쌍의 거리를 합산하는 계산과 혼동하지 마세요. 이 지표의 분자는 군집 중심과 전체 중심의 관계를 이용합니다.
군집 안 퍼짐을 모읍니다
각 표본에서 자신이 속한 군집의 중심까지 거리의 제곱을 더합니다. 같은 군집 안 표본이 중심 근처에 모이면 이 합이 작아집니다. 한 군집이 넓게 흩어지면 해당 군집의 몫이 커집니다.
K-means의 관성도 표본에서 가장 가까운 중심까지 제곱거리 합을 다루지만, CH 지수에는 군집 사이 퍼짐과 군집 수·표본 수에 따른 보정이 더 들어갑니다.
군집 수와 표본 수로 보정해 비율을 만듭니다
군집 사이 퍼짐을 군집 수에서 하나를 뺀 값으로 나누고, 군집 안 퍼짐을 표본 수에서 군집 수를 뺀 값으로 나눕니다. 앞의 값을 뒤의 값으로 다시 나눈 것이 CH 지수입니다.
따라서 군집 사이 퍼짐은 크고 군집 안 퍼짐은 작을수록 높은 쪽으로 갑니다. 계산식에는 군집 수와 표본 수가 함께 있으므로 원시 퍼짐 두 값의 단순한 몫만 CH 점수라고 부르면 빠진 부분이 생깁니다.
한 줄 정리: 군집 사이 제곱거리 합과 군집 안 제곱거리 합을 각각 군집 수·표본 수에 맞게 조정한 다음 비율을 계산합니다.
높은 값은 어떻게 읽어야 하나요?
같은 데이터에서 더 선명한 분할의 신호입니다
같은 특징 행렬을 여러 방식으로 묶었다면 높은 CH 점수는 내부적으로 더 잘 모이고 중심들이 구분되는 결과와 연결됩니다. scikit-learn 사용 가이드도 높은 점수를 더 잘 정의된 군집과 관련짓습니다.
숫자 자체에 모든 데이터에 통하는 만점이나 합격 점수는 없습니다. 다른 프로젝트의 데이터 크기, 좌표계, 특징 구성과 섞어 점수의 절댓값만 비교하지 않습니다.
볼록하지 않은 군집은 따로 봅니다
밀도 기반 군집화는 복잡한 모양의 연결 구조를 찾아낼 수 있습니다. 반면 CH 지수는 중심과 제곱거리로 요약하므로 이러한 결과가 업무상 의미 있어도 낮은 평가를 받을 수 있습니다.
이는 밀도 기반 방식이 무조건 틀렸다는 뜻이 아닙니다. 데이터 구조가 어떤 모양인지 보고, 관심 있는 결과가 중심에서 둥글게 모인 집합인지부터 판단합니다.
해석 주의: 높은 값은 해당 특징 공간의 내부 분리 신호입니다. 정답 라벨과 실제 활용 가치를 검증했다는 뜻은 아닙니다.
칼린스키-하라바츠 지수와 헷갈리는 용어는 무엇이 다른가요?
실루엣 점수와 CH 지수의 차이
실루엣 점수는 표본마다 같은 군집 안의 평균 거리와 가장 가까운 다른 군집까지의 평균 거리를 비교한 뒤 평균합니다. 표본별 관계를 보는 방식이며 거리 지표와 표본 추출 같은 설정도 확인할 수 있습니다.
CH 지수는 군집 중심과 전체 중심을 이용해 제곱거리 퍼짐을 모읍니다. 둘 다 정답 라벨이 없는 군집 평가에 쓸 수 있지만 계산하는 단위와 점수 범위가 같지 않아 숫자끼리 직접 견주지 않습니다.
데이비스-볼딘 지수와 CH 지수의 차이
데이비스-볼딘 지수는 각 군집의 내부 퍼짐과 가장 비슷한 다른 군집까지의 중심 거리를 비교한 뒤 군집별 결과를 평균합니다. 이 점수는 낮을수록 더 잘 분리된 결과와 연결됩니다.
CH 지수는 모든 군집을 놓고 군집 사이 퍼짐 대 군집 안 퍼짐을 비교하며 보통 높은 값을 선호합니다. 어느 지표가 맞는지보다 두 계산의 초점과 방향이 다르다는 사실을 기록하는 편이 중요합니다.
K-means 관성과 CH 지수의 차이
K-means의 inertia_는 표본에서 가장 가까운 군집 중심까지의 제곱거리 합입니다. 표본 가중치를 제공했다면 그 가중치도 반영됩니다. 군집 안 퍼짐과 닿아 있지만 군집 사이 분리까지 한 점수로 요약하지는 않습니다.
CH 지수는 이미 얻은 군집 라벨을 평가하는 별도 함수입니다. K-means를 쓰지 않아도 수치 특징과 군집 라벨이 있으면 계산할 수 있습니다. K-means 목적함수와 CH 지수를 같은 숫자로 취급하지 않습니다.
정답 라벨 평가와 CH 지수의 차이
정답 라벨을 알고 있다면 예측 묶음이 실제 범주와 어떻게 맞는지 따로 확인할 수 있습니다. CH 지수에는 그런 외부 정답을 넣지 않으므로 의미가 다른 주제가 우연히 가까운 좌표에 모여도 그 차이를 직접 평가하지 못합니다.
실무에서는 내부 점수와 사람이 확인한 사례, 이용 목적이 서로 충돌할 수 있습니다. 그럴 때는 점수만으로 정답을 선언하지 말고 어떤 특징이 묶음을 이끌었는지 다시 봅니다.
비교 정리: 실루엣은 표본별 이웃 거리, 데이비스-볼딘은 군집별 불리한 이웃, K-means 관성은 내부 제곱거리, CH는 군집 안팎 퍼짐의 보정된 비율을 봅니다.
실전에서는 어디에 쓰이나요?
문서와 문의의 주제 묶음
문서 임베딩이나 문의의 수치 특징으로 여러 군집 후보를 만든 뒤 CH 지수를 기록할 수 있습니다. 다만 임베딩의 거리와 중심이 업무상 주제 유사성을 정확히 나타내는지, 대표 문서를 직접 읽어 확인해야 합니다.
제목에 같은 단어가 있다는 이유만으로 업무 처리 절차가 같은 것은 아닙니다. 평가 숫자와 별개로 대표 사례, 드문 사례, 묶음별 크기를 살펴봅니다.
고객 행동과 이미지 특징 분석
방문 빈도와 구매 간격 같은 수치 데이터를 묶거나 이미지에서 뽑은 특징을 비교할 때도 사용할 수 있습니다. 계산에 앞서 특징의 단위와 결측 처리 기준을 같게 적용해야 합니다.
특히 이미지의 픽셀 좌표와 임베딩 좌표는 서로 같은 뜻이 아닙니다. 어떤 표현을 넣어 계산했는지 적어야 나중에 점수 변화의 이유를 찾을 수 있습니다.
여러 군집화 결과의 내부 비교
K-means 외의 군집화 방식이 만든 라벨도 같은 입력 특징에 맞춰 비교할 수 있습니다. 단, 노이즈 라벨이 있는 방식은 노이즈를 포함할지 제외할지 먼저 결정합니다.
서로 다른 후보의 일부만 뺀 점수와 전체 표본으로 낸 점수를 나란히 놓으면 평가 대상부터 달라집니다. 같은 표본 집합을 고정하고 군집의 모양·크기도 함께 살피는 편이 안전합니다.
칼린스키-하라바츠 지수를 적용할 때 어떤 순서로 확인하나요?
1. 입력 특징과 표본을 고정합니다
비교할 후보들이 똑같은 행과 열을 쓰는지 확인합니다. 수치 단위가 다른 특징은 필요한 스케일링을 정하고 모든 후보에 동일하게 적용합니다. 결측값 처리와 제외 표본도 기록합니다.
2. 군집 라벨과 군집 수를 확인합니다
각 표본에 하나씩 예측 라벨이 대응해야 합니다. 비교할 수 있는 여러 군집을 만들고, 단일 군집이나 표본마다 하나의 군집처럼 비교 의미가 사라지는 결과는 점수만 요구하지 말고 후보 설정을 다시 봅니다.
3. CH 지수와 비교 지표를 함께 기록합니다
scikit-learn의 calinski_harabasz_score에 수치 특징 행렬과 예측 라벨을 전달합니다. 같은 입력에서 후보별 점수를 구하고 필요하다면 실루엣 점수와 데이비스-볼딘 지수도 계산합니다.
지표마다 높고 낮음의 방향이 다릅니다. CH와 실루엣은 높은 쪽, 데이비스-볼딘은 낮은 쪽을 읽되 값의 크기가 서로 같은 척도라는 뜻은 아닙니다.
4. 대표 사례와 목적을 대조합니다
점수가 높게 나온 후보의 군집별 사례를 직접 보고, 업무상 나눠야 하는 항목이 실제로 나뉘었는지 확인합니다. 작은 군집과 외딴 표본도 따로 살펴봅니다.
최종 후보를 고른 이유는 점수 하나가 아니라 입력 특징, 노이즈 처리, 군집의 형태, 사용 목적까지 포함해 남깁니다. 이렇게 해야 데이터가 바뀌었을 때 원인을 다시 점검할 수 있습니다.
실전 팁: 점수를 기록할 때 평가에 넣은 행의 수, 특징 변환, 군집 수, 노이즈 처리 규칙을 함께 적으세요.
사용할 때 무엇을 주의해야 하나요?
첫째, 특징의 단위를 무시하지 않습니다. 제곱거리 기반 퍼짐은 큰 단위를 가진 축의 영향을 받을 수 있습니다. 전처리를 바꾸고 난 두 점수를 같은 조건의 숫자로 다루면 안 됩니다.
둘째, 볼록한 모양을 선호하는 한계를 기억합니다. 밀도 기반 군집이 굽은 모양을 잘 잡아도 CH 지수에서는 불리할 수 있습니다. 점수와 함께 군집 크기와 연결 구조를 살펴봅니다.
셋째, 노이즈 라벨을 자동으로 정답에서 제외했다고 가정하지 않습니다. 군집화 결과에 -1 같은 라벨이 있다면 함수에 어떤 표본과 라벨을 넘겼는지 확인하고, 평가 대상을 바꿨다면 그 사실을 남깁니다.
넷째, 다른 데이터셋에서 계산된 절댓값을 우열 순위로 바로 비교하지 않습니다. 행의 수와 특징 구성, 좌표계가 달라지면 안팎 퍼짐의 의미가 바뀝니다. 같은 조건의 후보부터 비교합니다.
다섯째, 지표가 정답을 안다고 착각하지 않습니다. 정답 라벨이 있으면 외부 평가와 대조하고, 없으면 대표 사례를 사람이 검토합니다. 군집이 조밀해도 원래 목적에 맞지 않으면 다시 설계해야 합니다.
주의: CH 지수는 분리된 중심과 작은 내부 퍼짐을 보상합니다. 점수만으로 군집의 진짜 개수나 업무상 의미를 확정하지 마세요.
자주 묻는 질문
Q1. 칼린스키-하라바츠 지수는 높을수록 좋은가요?
같은 입력 데이터의 후보를 비교할 때 보통 높은 값이 더 잘 정의된 군집과 연결됩니다. 하지만 만점이나 보편적인 합격선은 없고 군집 모양에 따른 선호도 있습니다.
Q2. 실제 정답 라벨이 없어도 계산할 수 있나요?
가능합니다. 수치 특징 행렬과 군집화가 만든 예측 라벨이 필요합니다. 정답 범주와 일치하는지를 묻는 외부 평가는 이 점수만으로 대신할 수 없습니다.
Q3. 군집 수가 달라도 비교할 수 있나요?
같은 표본과 특징, 전처리 조건에서 여러 군집 수 후보를 비교할 때 참고할 수 있습니다. 식에 군집 수와 표본 수 보정이 들어가지만 최고 점수만으로 실제 군집 수를 확정하지는 않습니다.
Q4. 실루엣 점수와 같은 수치인가요?
아닙니다. 실루엣은 표본마다 같은 군집과 이웃 군집의 평균 거리를 비교합니다. CH 지수는 전체·군집 중심을 바탕으로 군집 안팎의 제곱거리 퍼짐을 비교합니다.
Q5. K-means에서만 사용하나요?
아닙니다. scikit-learn 함수는 특징 행렬과 예측 라벨을 받습니다. 다른 알고리즘의 라벨도 평가할 수 있지만 노이즈, 군집 모양, 평가 표본을 함께 확인해야 합니다.
출처
마무리
칼린스키-하라바츠 지수는 군집 사이 퍼짐과 군집 안 퍼짐을 비교해 정답 없는 군집 결과의 분리 정도를 읽는 방법입니다. 같은 데이터에서 후보를 나란히 볼 때 높은 쪽을 참고하되, 숫자 자체를 정답으로 받아들이지는 않습니다.
처음 사용한다면 입력 특징과 표본을 고정하고 후보별 점수, 군집 수, 대표 사례를 같이 적어 보세요. 곡선 형태나 밀도 기반 군집이 중요한 데이터라면 다른 지표와 실제 사례까지 확인해야 군집 선택의 이유를 설명할 수 있습니다.
