혼동행렬 (Confusion Matrix)

컴퓨터과학·AI 통계
한 줄 정의: 분류 모델이 예측한 결과와 실제 정답을 맞춰보며, 맞춘 경우와 틀린 경우를 종류별로 정리한 표입니다.

쉽게 풀면

병원에서 질병 검사를 했다고 해봅시다. 결과는 네 가지로 나뉩니다. 아픈 사람을 "아프다"고 맞게 진단한 경우, 안 아픈 사람을 "안 아프다"고 맞게 진단한 경우, 안 아픈데 "아프다"고 잘못 진단한 경우(과잉 진단), 아픈데 "안 아프다"고 놓친 경우(오진)입니다. 혼동행렬은 이 네 가지 경우의 개수를 표로 정리한 것입니다. 단순히 "몇 % 맞췄다"는 정확도 하나만 보는 것보다, 어떤 종류의 실수를 얼마나 했는지를 한눈에 볼 수 있어서 모델의 약점을 파악하는 데 유용합니다.

왜 중요한가

분류 모델을 다루는 논문에서는 단일 정확도 수치만으로는 모델이 실제로 어떤 실수를 하는지 알기 어렵기 때문에, 혼동행렬이 실험 결과를 검증하는 기본 도구로 자주 등장합니다. 특히 의료 진단, 이상 탐지, 스팸 필터링처럼 놓치는 경우와 잘못 잡아내는 경우의 대가가 서로 다른 문제에서는, 혼동행렬을 통해 어느 쪽 오류가 더 심각한지 구체적으로 논의할 수 있습니다. 이 때문에 새로운 모델을 제안하는 논문에서는 정확도 외에 혼동행렬이나 이로부터 파생된 지표를 함께 제시하는 것이 관례처럼 자리 잡고 있습니다.

논문에서는 이렇게 쓰입니다

"제안한 모델의 혼동행렬을 분석한 결과, 거짓 음성(false negative) 비율이 상대적으로 높게 나타났다."

이 문장은 모델이 실제로는 양성인 사례를 음성으로 잘못 판단하는 경우가 많았다는 것을 혼동행렬을 통해 확인했다는 뜻입니다.

"테스트 데이터셋에 대한 혼동행렬을 살펴보면, 클래스 간 오분류가 특정 범주에 집중되어 있음을 확인할 수 있다."

모델이 모든 범주에서 고르게 틀리는 것이 아니라, 특정 범주끼리 혼동하는 경향이 있다는 것을 혼동행렬로 확인했다는 의미입니다. 여러 범주를 구분하는 다중 분류 문제에서 자주 나오는 서술입니다.

"영상 기반 이상 탐지 실험에서 혼동행렬을 통해 정상 신호를 이상으로 오탐지하는 비율을 비교하였다."

이상 탐지처럼 정상과 비정상을 구분하는 과제에서, 혼동행렬을 이용해 잘못된 경보(오탐)가 얼마나 발생했는지 다른 방법과 비교했다는 뜻입니다.

조금 더 깊게 보면

혼동행렬을 실제로 읽을 때는 단순히 표 안의 숫자를 보는 것을 넘어, 여기서 계산되는 정밀도(precision), 재현율(recall), F1 점수 같은 파생 지표를 함께 살펴보는 경우가 많습니다. 범주가 셋 이상인 다중 분류 문제에서는 혼동행렬이 2x2가 아니라 더 큰 정방행렬 형태가 되며, 대각선에서 벗어난 값들이 어느 범주와 어느 범주가 자주 혼동되는지를 보여줍니다. 또한 여러 범주에 걸친 지표를 하나로 요약할 때는 범주별 지표를 단순 평균하는 매크로 평균과, 데이터 개수 비중을 반영하는 마이크로 평균 등 서로 다른 집계 방식이 쓰이므로, 논문에서 어떤 방식을 사용했는지 확인하는 것이 결과를 정확히 해석하는 데 도움이 됩니다.

주의할 점

혼동행렬 자체는 숫자를 정리한 표일 뿐이며, 여기서 계산되는 정밀도와 재현율 같은 지표를 함께 봐야 모델 성능을 제대로 판단할 수 있습니다. 특히 한 범주의 데이터가 다른 범주보다 훨씬 많은 불균형 데이터에서는 정확도만으로 판단하면 오해가 생기기 쉽습니다.

관련 용어