내일배움캠프

[내일배움캠프] TIL 33일차 26.02.23(월)

nom_de_plume 2026. 2. 23. 21:09

혼동 행렬(Confusion Matrix)

  • 모델이 내놓은 예측 결과가 실제 정답과 얼마나 일치하는지를 한눈에 보여주는 표.
  • 단순히 "정확도가 높다"라고 말하는 것보다, 어떤 종류의 오류를 범하고 있는지를 파악하는 데 핵심적인 역할.\

 

1. 용어의 구성 원리

각 용어는 [예측의 결과] + [예측한 클래스]의 조합으로 이루어져 있습니다.

  • True/False: 예측이 맞았으면 True, 틀렸으면 False
  • Positive/Negative: 모델이 예측한 값이 긍정(Positive)인지 부정(Negative)인지

구분 설명 실제 상황 예시 (암 진단)
TP (True Positive) 실제 Positive를 Positive라고 맞게 예측한 경우 암 환자에게 암이라고 정확히 진단함
TN (True Negative) 실제 Negative를 Negative라고 맞게 예측한 경우 건강한 사람에게 건강하다고 정확히 진단함
FP (False Positive) 실제 Negative인데 Positive라고 틀리게 예측한 경우 건강한 사람에게 암이라고 오진함 (1종 오류)
FN (False Negative) 실제 Positive인데 Negative라고 틀리게 예측한 경우 암 환자에게 건강하다고 오진함 (2종 오류)

 

📈 혼동 행렬을 활용한 모델 성능 평가지표

혼동 행렬의 네 가지 요소($TP, TN, FP, FN$)를 조합하면 모델의 성능을 다각도로 분석할 수 있다.

1. 정확도 (Accuracy)

가장 직관적인 지표로, 전체 데이터 중 모델이 정답(Positive와 Negative 모두)을 맞춘 비율입니다.

Accuracy = {TP + TN} / {TP + TN + FP + FN}
  • 특징: 데이터의 클래스 분포가 균형 잡혀 있을 때 유용.
  • 주의: Positive와 Negative의 비율이 극단적으로 차이 날 경우(예: 암 환자 1%, 건강한 사람 99%), 모델이 무조건 '건강하다'고만 해도 정확도가 99%가 나오는 정확도의 함정에 빠질 수 있다.

2. 정밀도 (Precision)

모델이 Positive라고 예측한 것들 중에서, 실제로 Positive인 데이터의 비율.

Precision = {TP} / {TP + FP}
  • 핵심: "모델이 맞다고 한 것 중 진짜는 얼마인가?"
  • 중요한 경우: 스팸 메일 분류. (스팸이라고 예측해서 차단했는데, 알고 보니 중요한 업무 메일(FP)이면 곤란하기 때문.)

3. 재현율 (Recall / Sensitivity)

실제 Positive인 데이터 중에서, 모델이 Positive라고 올바르게 찾아낸 비율.

Recall = {TP} / {TP + FN}
  • 핵심: "놓치지 않고 얼마나 잘 찾아냈는가?"
  • 중요한 경우: 암 진단, 금융 사기 탐지. (실제 환자를 건강하다고 오진(FN)하여 치료 기회를 놓치는 것이 치명적이기 때문.)

4. F1-Score

정밀도와 재현율의 조화 평균. 두 지표가 어느 한쪽으로 치우치지 않고 균형을 이룰 때 높은 값을 가짐.

F1 = 2 x {Precision x Recall} / {Precision + Recall}
  • 특징: 데이터 라벨 불균형(Imbalanced Data)이 심할 때 모델의 성능을 가장 객관적으로 나타내는 지표.