혼동 행렬(confusion matrix)은 점수 하나를 네 개의 개수로 나눠 보여 줍니다. 이탈 예측 모델이라면 네 개수는 네 가지 질문에 답합니다. 떠나는 고객을 몇 명 잡아냈는지, 몇 명을 놓쳤는지, 남는 고객을 몇 명 잘못 지목했는지, 몇 명을 올바르게 제외했는지입니다.
CUBIG의 UCI Iranian Churn 실험(2026년 10월)은 평가 고객 630명(이 중 이탈 고객 99명)에 대한 로지스틱 회귀의 혼동 행렬을 보고합니다. 데이터 준비 전에는 이탈 고객 42명을 찾아냈고 57명을 놓쳤으며, 이탈하지 않은 고객 8명을 잘못 지목했고 523명을 올바르게 분류했습니다. 같은 모델 설정과 같은 평가 레코드로 준비 후 결과를 보면 각각 78, 21, 41, 490이었습니다.
네 칸은 다음과 같습니다.
- 참양성(true positive): 모델이 해당 사례를 지목했고 실제로 그 결과가 일어났습니다
- 거짓양성(false positive): 모델이 지목했지만 실제로는 그 결과가 일어나지 않았습니다(오경보)
- 거짓음성(false negative): 모델이 지목하지 않았지만 실제로는 그 결과가 일어났습니다(놓침)
- 참음성(true negative): 모델이 지목하지 않았고 실제로도 그 결과가 일어나지 않았습니다
정밀도와 재현율, F1 점수를 비롯해 흔히 쓰는 분류 지표 상당수가 이 개수로 계산됩니다.
혼동 행렬은 정확도와 어떻게 다른가요?
- 정확도는 전체 예측 중 맞힌 비율을 나타내는 숫자 하나입니다.
- 혼동 행렬은 오류를 종류별로 나눠 두므로, 모델이 사례를 놓치는지 오경보를 내는지 팀이 확인할 수 있습니다.
- 한쪽 결과가 드물면 드문 사례 대부분을 놓쳐도 정확도는 높게 유지될 수 있습니다. Iranian Churn 실험에서 정확도는 0.8968이었지만 모델은 이탈 고객 99명 중 57명을 놓쳤습니다. 올바르게 찾아낸 이탈 고객이 42명에서 78명으로 늘었을 때도 정확도는 0.9016으로 조금 오르는 데 그쳤습니다.
AI 업무에서 혼동 행렬은 어디서 한계를 드러내나요?
혼동 행렬은 하나의 평가 레코드 집합에서 하나의 임곗값을 기준으로 한 결과입니다. 판정 임곗값을 바꾸면 네 개수도 달라집니다. 다른 테스트 세트로 모델을 평가하면 이전 개수와 더는 비교할 수 없습니다.
두 혼동 행렬을 비교하려면 같은 평가 세트와 같은 임곗값으로 모델을 평가해야 합니다. CUBIG의 AI-ready data platform인 Syntitan에서 Ready for Model은 같은 평가 조건으로 데이터 준비 전후 결과를 비교합니다. 그래서 Iranian Churn의 두 혼동 행렬을 나란히 놓고 읽을 수 있습니다. 이탈 고객 78명을 찾아내는 대가로 오경보 41건을 받아들일 수 있는지는 이탈 고객을 놓쳤을 때의 비용과 불필요한 고객 유지 연락에 드는 비용에 따라 달라집니다.