조정 랜드 지수(Adjusted Rand Index, ARI)란? AI에서 정답 군집과 예측 군집의 일치를 평가하는 지표
TL;DR
조정 랜드 지수(ARI)는 같은 표본에 붙인 두 군집 라벨이 얼마나 일치하는지 표본 쌍으로 비교하고 우연한 일치를 보정한 점수입니다. 정답 라벨이 있는 평가셋에서는 예측 군집과 정답을 비교합니다. 완전히 같은 분할은 1, 무작위 분할의 기대값은 0에 가깝지만 개별 점수는 음수도 가능합니다. 실루엣 같은 내부 평가 지표와 달리 비교할 기준 라벨이 필요합니다.
핵심 3줄 요약
- 핵심 1
같은 표본의 두 분할을 비교합니다. 표본 쌍이 두 라벨 체계에서 함께 묶이거나 함께 떨어지는지 확인합니다. - 핵심 2
우연히 맞는 비율을 보정합니다. 랜드 지수의 단순 일치 비율과 달리 무작위 라벨의 기대값이 0에 가깝습니다. - 핵심 3
정답의 품질까지 인증하지는 않습니다. 기준 라벨이 틀리거나 군집의 업무 목적과 맞지 않으면 높은 ARI도 좋은 결과를 보증하지 않습니다.
이 글에서 다룰 내용
- 조정 랜드 지수의 한 문장 정의
- 고객 문의 네 건으로 이해하는 두 분할의 일치
- AI 군집 평가에 기준 라벨이 필요한 이유
- 표본 쌍과 우연 보정으로 읽는 계산 순서
- 랜드 지수·실루엣·AMI와의 차이
- 평가셋을 정하고 점검하는 실전 순서
- 점수의 범위와 해석에서 주의할 점
- 자주 묻는 질문
조정 랜드 지수를 한 문장으로 정의하면 무엇인가요?
조정 랜드 지수는 같은 데이터에 대한 두 군집 분할의 표본 쌍 일치를 세고, 우연히 일치할 것으로 예상되는 몫을 빼서 만든 외부 군집 평가 지표입니다. 영어 이름은 Adjusted Rand Index이며 ARI 또는 adjusted Rand score로도 부릅니다.
두 라벨 목록은 표본 수와 순서가 같아야 합니다. 첫 목록은 사람이 붙인 정답 클래스, 둘째 목록은 군집 알고리즘이 낸 번호일 수 있습니다. 실험 두 번에서 얻은 군집 번호를 비교할 수도 있지만, 그때 점수는 정답 대비 정확도가 아니라 두 분할의 유사성을 뜻합니다.
군집 번호의 숫자 자체에는 순서나 의미가 없습니다. 첫 분할의 0번을 둘째 분할에서 9번이라 불러도 같은 표본끼리 묶였다면 ARI는 달라지지 않습니다. 두 표본이 함께 들어갔는지, 서로 다른 묶음에 들어갔는지가 계산의 단위입니다.
한 줄 정리: ARI는 군집 이름이 같은지를 보는 점수가 아니라 표본 간 묶임 관계가 같은지를 우연 보정 후 읽는 점수입니다.
쉬운 예시로 이해해 볼까요?
감자나라ai가 고객 문의 네 건을 정답 유형별로 나눴다고 가정해 보겠습니다. 배송 문의 두 건은 A, 환불 문의 두 건은 B입니다. 군집 모델이 낸 번호는 정답의 문자와 달라도 됩니다.
- 정답 라벨: 배송 1·배송 2는 A, 환불 1·환불 2는 B입니다.
- 예측 라벨: 배송 1·배송 2는 7번, 환불 1·환불 2는 3번입니다.
- 두 분할은 이름이 달라도 같은 쌍을 묶고 같은 쌍을 분리하므로 완전히 일치합니다.
이제 모델이 배송 2를 환불 쪽으로 옮기면 일부 쌍은 정답에서 함께 있지만 예측에서는 떨어지고, 다른 쌍은 반대로 함께 묶입니다. ARI는 이런 관계의 차이를 세어 점수를 낮춥니다. 단순히 각 문의의 숫자 라벨이 같은지 비교하면 올바른 분할조차 잘못 평가합니다.
이 예시는 계산 구조를 설명하기 위한 작은 가상 자료입니다. 실제 평가는 같은 고객 문의를 정답표와 모델 결과에 빠짐없이 한 번씩 넣고 표본 순서를 정확히 맞춘 뒤 수행합니다.
쉬운 예시: 같은 반 학생들의 조 편성표 두 장을 겹쳐 봅니다. 조 이름이 아니라 누가 누구와 같은 조인지 비교하는 방식입니다.
왜 AI에서 조정 랜드 지수가 중요한가요?
정답이 있는 군집 실험을 비교합니다
이미 업무에서 확인된 정답 유형이 있다면 군집이 그 유형을 얼마나 재현하는지 측정할 수 있습니다. 같은 평가 표본과 같은 정답표를 놓고 K-means와 다른 군집화 방법의 결과를 비교할 때 유용합니다.
이 점수는 모델 학습에 정답을 사용한다는 뜻은 아닙니다. 군집화는 정답 없이 수행하더라도 별도의 평가 단계에서만 보관한 기준 라벨과 결과를 비교할 수 있습니다.
군집 번호 바뀜에 속지 않습니다
반복 실행마다 0번과 1번 군집의 번호가 뒤바뀌는 일은 흔합니다. 라벨 번호 일치율을 그대로 계산하면 같은 분할도 다른 결과로 보일 수 있습니다. ARI는 표본 쌍의 관계를 비교해 이러한 순서 바뀜을 무시합니다.
우연한 일치를 경계합니다
랜드 지수는 표본 쌍이 두 분할에서 함께 있거나 둘 다 따로 있을 때 일치로 셉니다. 서로 다른 군집에 있는 쌍이 많이 생기면 무작위에 가까운 분할도 점수가 높게 보일 수 있습니다. ARI는 기대되는 우연 일치를 보정해 무작위 분할의 기준점을 0 근처로 맞춥니다.
핵심 인사이트: 정답 라벨이 없는 데이터라면 ARI를 실제 정답에 대한 평가 점수처럼 쓰지 않습니다. 비교할 두 번째 분할을 먼저 정해야 합니다.
조정 랜드 지수는 어떻게 계산하나요?
같은 표본에서 가능한 쌍을 확인합니다
표본 두 개를 하나의 쌍으로 보고 전체 표본에서 가능한 쌍을 살핍니다. 각 쌍이 정답 분할에서는 같은 군집인지 다른 군집인지, 예측 분할에서는 같은 군집인지 다른 군집인지 기록합니다. 표본의 대응이 어긋나면 점수는 의미가 없습니다.
두 분할에서 일치하는 쌍을 셉니다
둘 다 같은 군집으로 판단한 쌍과 둘 다 다른 군집으로 판단한 쌍을 더해 전체 쌍 수로 나누면 보정 전 랜드 지수(RI)입니다. RI는 0부터 1까지이며 1이면 표본의 묶임 관계가 모두 일치합니다.
그러나 보정 전 값은 무작위 분할에서도 0에 가깝다고 보장하지 않습니다. 특히 서로 다른 군집으로 나뉜 쌍이 많을 때 두 분할이 우연히 따로 놓은 쌍도 일치 항목에 들어갑니다.
기대되는 우연 일치를 빼고 재조정합니다
ARI는 보정 전 RI에서 우연한 분할의 기대 RI를 뺀 뒤, 가능한 최대 RI와 기대 RI의 차이로 나누는 방식으로 설명할 수 있습니다. 계산에 쓰는 기대값은 두 분할의 군집 크기 구조를 반영합니다.
scikit-learn에서는
adjusted_rand_score(labels_true, labels_pred)
로 두 라벨 배열을 넘깁니다. API는 두 배열의 순서를 바꿔도 같은 값을 주지만, 실무 기록에는 어느 쪽이 정답인지 명시하는 편이 혼동을 줄입니다.
한 줄 정리: 표본 쌍 일치 비율을 그대로 믿지 않고 무작위 분할에서도 생길 몫을 보정한 값이 ARI입니다.
점수가 높거나 낮으면 어떻게 읽어야 하나요?
같은 분할은 1입니다. 무작위로 라벨을 붙인 분할은 평균적으로 0에 가깝습니다. 개별 비교가 우연 기대보다 더 어긋나면 음수가 나올 수 있으며 scikit-learn 문서는 가능한 하한을 -0.5로 안내합니다. 0이 모든 표본 쌍이 다르다는 뜻은 아닙니다.
점수 하나만으로 특정 군집 수가 옳다거나 각 군집의 의미가 유용하다고 말하기 어렵습니다. 정답표에 무엇을 같은 유형으로 정의했는지와 실제 군집별 사례를 함께 봐야 합니다. 소수 클래스가 많거나 크기가 아주 다른 경우에는 각 그룹의 오류가 전체 점수에 어떻게 드러나는지 따로 확인합니다.
서로 다른 평가셋에서 나온 ARI 수치를 아무 조건 없이 나란히 놓지 않습니다. 기준 라벨 작성법·표본 구성·제외 규칙이 달라지면 점수가 답하는 질문도 달라집니다. 정답이 불확실하면 라벨의 일관성부터 점검합니다.
조정 랜드 지수와 헷갈리는 용어는 무엇이 다른가요?
랜드 지수(RI)와 ARI의 차이
RI는 두 분할의 같은 쌍과 다른 쌍이 일치한 비율입니다. ARI는 그 일치가 무작위로도 생길 가능성을 보정합니다. 따라서 두 숫자를 동일한 0 기준으로 읽거나 서로 값만 직접 비교하면 안 됩니다.
실루엣·데이비스-볼딘 지수와 ARI의 차이
실루엣과 데이비스-볼딘 지수는 수치 특징의 거리·퍼짐을 사용해 군집 자체를 내부에서 평가합니다. 정답 라벨은 필요하지 않습니다. ARI는 두 라벨 배열만으로 계산하며 입력 특징의 유클리드 거리나 군집 모양을 직접 평가하지 않습니다.
최근 Glossary의 칼린스키-하라바츠 지수도 같은 내부 평가 계열입니다. ARI는 기준 분할과의 일치라는 별도의 질문에 답하므로 높은 내부 점수가 높은 ARI를 보증하지는 않습니다.
조정 상호정보량(AMI)과 ARI의 차이
둘 다 정답과 예측의 두 분할을 비교하고 우연한 일치를 보정합니다. ARI는 두 표본이 같은 군집에 들어가는지의 쌍 관계를, AMI는 두 라벨 분할 사이에 공유된 정보량을 기준으로 계산합니다.
둘은 공식이 다르므로 숫자가 반드시 같지 않습니다. 같은 평가셋에서 두 점수를 나란히 기록할 수 있지만 어느 하나를 다른 하나의 별칭처럼 쓰지는 않습니다.
비교 정리: 정답 분할과 예측 분할의 일치를 묻는다면 ARI, 군집의 내부 거리 구조를 묻는다면 실루엣 등 내부 평가 지표를 봅니다.
실전에서는 어디에 쓰이나요?
라벨이 있는 벤치마크에서 군집 결과 비교
평가용으로 정리한 문서 유형이나 이미지 범주를 기준 라벨로 두고 여러 군집화 결과를 비교합니다. 군집 번호가 달라도 같은 데이터가 함께 묶였는지 확인할 수 있습니다. 데이터와 정답을 모델 튜닝에 반복 사용하면 독립적인 최종 평가라는 의미가 약해집니다.
실험을 반복했을 때 분할 안정성 확인
같은 표본을 서로 다른 실행 설정으로 군집화한 결과끼리 ARI를 구하면 두 분할의 일치도를 확인할 수 있습니다. 이때 외부의 실제 정답이 없으므로 모델의 정확도가 아니라 결과 안정성을 보는 용도라고 분명히 기록해야 합니다.
라벨링 기준과 모델 출력의 어긋남 찾기
사람이 만든 유형표와 모델의 군집을 비교해 어떤 사례가 서로 다른 묶음에 들어갔는지 후속 조사할 수 있습니다. 점수가 낮으면 모델만 탓하기 전에 사람이 만든 정답표가 서로 겹치는 범주인지, 표본 정렬과 누락이 없었는지 확인합니다.
실전 팁: 점수와 함께 평가 표본 수, 라벨 정의, 군집별 사례를 남겨야 다음 실험에서 같은 조건을 재현하기 쉽습니다.
조정 랜드 지수를 적용할 때 어떤 순서로 확인하나요?
1. 기준 분할의 목적을 정합니다
정답 유형과의 비교인지, 두 번의 군집 실행이 얼마나 같은지 확인하려는지 먼저 구분합니다. 두 용도를 한 점수 이름으로만 적으면 독자가 실제 정답의 존재를 오해할 수 있습니다.
2. 동일한 표본과 순서를 맞춥니다
같은 표본 ID 목록을 기준으로 두 라벨 배열을 정렬합니다. 빠진 항목과 중복 항목을 검사하고, 전처리 후 표본이 걸러졌다면 정답 배열에도 같은 제외 규칙을 적용합니다.
3. 두 배열의 의미와 노이즈 정책을 기록합니다
정답 분류표의 작성 기준과 모델이 만든 군집 수를 적습니다. DBSCAN 같은 방법에서 노이즈 라벨을 하나의 값으로 두는지 제외하는지에 따라 비교 대상이 달라집니다. 어느 쪽을 택하든 평가 전에 규칙을 고정해야 합니다.
4. API로 점수를 계산하고 사례를 살핍니다
adjusted_rand_score
에 기준 라벨과 예측 라벨을 순서대로 넣습니다. 값을 기록한 뒤 대표 사례와 큰 군집·작은 군집의 구성을 보고 예상과 다른 묶음이 어디서 생겼는지 확인합니다.
5. 내부 지표와 업무 평가를 함께 봅니다
정답표가 있다면 ARI, 특징 공간의 거리 구조를 보고 싶다면 내부 지표를 별도로 기록합니다. 실제 활용성은 군집별 검토 시간, 필요한 유형의 누락, 업무 담당자의 판단처럼 목적에 맞는 기준으로 다시 확인합니다.
한 줄 정리: 기준 라벨의 의미, 표본 대응, 노이즈 처리 규칙이 먼저이며 점수 계산은 그다음입니다.
사용할 때 무엇을 주의해야 하나요?
첫째, 정답 없는 군집 평가라고 소개하지 않습니다. ARI에는 비교할 두 라벨 배열이 필요합니다. 사람이 만든 정답표가 없다면 두 실행 간 일치를 비교할 수 있지만 그 결과는 참값 대비 품질이 아닙니다.
둘째, 군집 번호를 개별 정답처럼 비교하지 않습니다. 번호가 뒤바뀐 동일 분할은 ARI가 1입니다. 분류 정확도를 계산하듯 라벨 숫자의 일치율을 구하면 이 성질을 놓칩니다.
셋째, 0이나 음수를 실패 확률로 읽지 않습니다. 0은 우연 분할의 기대 수준에 가까운 기준이고 음수는 그 기대보다 낮은 일치입니다. ARI는 확률이나 퍼센트가 아닙니다.
넷째, 기준 라벨의 편향을 살핍니다. 한 정답 분할과의 높은 일치가 별도의 업무 가치나 다른 가능한 군집 정의까지 보증하지 않습니다. 기준 표본의 생성·검수 과정을 기록합니다.
다섯째, 비교 조건을 고정합니다. 표본 누락, 클래스 구성, 군집 수, 노이즈 처리 방식이 달라지면 결과 해석이 달라집니다. 같은 평가셋에서 대안 지표와 실제 사례를 함께 봅니다.
주의: 조정 랜드 지수는 한 가지 기준 분할에 얼마나 동의하는지 알려 줍니다. 정답 라벨이 없거나 불안정하면 내부 지표와 사례 검토를 병행하세요.
자주 묻는 질문
Q1. ARI를 계산하려면 정답 라벨이 반드시 있나요?
두 라벨 분할은 반드시 있어야 합니다. 정답 라벨이 있으면 정답 대비 평가가 되고, 서로 다른 실행에서 만든 두 분할만 있으면 그 결과들의 일치도를 측정합니다. 후자는 실제 정답 대비 성능이 아닙니다.
Q2. 군집 번호가 서로 바뀌면 점수가 떨어지나요?
아닙니다. 각 표본이 누구와 함께 묶였는지가 같으면 번호를 바꿔도 점수는 1입니다. 숫자 0과 1의 글자상 일치 여부를 계산하지 않습니다.
Q3. ARI가 0이면 절반을 틀린 건가요?
아닙니다. 무작위 분할에서 기대되는 일치 수준에 가까운 값이라는 뜻입니다. 분류 정확도 0%나 50%로 바로 환산할 수 없습니다.
Q4. ARI가 음수일 수도 있나요?
네. 두 분할의 일치도가 무작위 분할의 기대 수준보다 낮으면 음수가 나옵니다. scikit-learn 문서에는 특히 어긋나는 경우의 하한을 -0.5로 설명합니다.
Q5. 실루엣 점수가 높으면 ARI도 높나요?
보장되지 않습니다. 실루엣은 선택한 특징 공간에서 군집의 거리 구조를 평가하고 ARI는 두 분할의 표본 쌍 일치를 봅니다. 군집의 모양과 기준 라벨이 서로 다른 기준일 수 있습니다.
Q6. 두 번의 군집 결과 비교에도 ARI를 쓸 수 있나요?
같은 표본에 대한 두 라벨 배열이라면 가능합니다. 표본이 다르거나 배열 순서가 어긋나면 올바른 비교가 아닙니다. 높은 값은 결과끼리 비슷하다는 뜻이지 참값과 맞는다는 뜻은 아닙니다.
출처
마무리
조정 랜드 지수는 같은 표본의 두 군집 분할을 비교하면서 우연한 일치를 보정합니다. 정답이 있는 벤치마크라면 예측 군집의 정답 대비 유사도를, 반복 실험끼리 비교한다면 분할의 일치도를 읽는 도구입니다.
군집 번호가 달라도 표본끼리 같은 묶음에 들어가면 같은 결과로 판단합니다. 점수 1, 0, 음수의 의미를 구별하고 기준 라벨의 품질과 표본 정렬을 먼저 확인하세요. 실루엣 같은 내부 지표와는 질문이 다르므로 실제 사례와 함께 읽어야 합니다.
