8단원: 모델 평가

우리가 만든 모델이 얼마나 뛰어난지, 그 가치를 증명하는 마지막 관문입니다. 단순한 '정확도'의 함정을 넘어, 모델의 예측 결과를 상세히 해부하는 '오차 행렬'과 상황에 맞는 핵심 지표들을 통해 모델의 진정한 성능을 평가하는 방법을 배웁니다.

정확도만으로는 부족한 이유

정확도의 함정: 불균형 데이터 문제

분류 모델의 성능을 가장 직관적으로 보여주는 지표는 정확도(Accuracy)입니다. 정확도는 전체 예측 중 맞게 예측한 비율을 의미합니다. 하지만 정확도만으로는 모델의 진정한 성능을 평가하기 어려운 경우가 많습니다. 특히, 데이터 불균형(Data Imbalance) 문제가 있을 때 그렇습니다.

비유: 암 진단 모델의 함정

1,000명 중 10명만 암 환자(Positive)이고 990명이 정상(Negative)인 데이터가 있다고 가정해봅시다. 만약 어떤 모델이 모든 사람을 '정상'이라고만 예측한다면 어떻게 될까요?

정확도 = (실제 정상 990명 중 990명 정답) / 1000명 = 99%

정확도는 99%로 매우 높지만, 실제 암 환자 10명을 모두 놓쳐버린(오진) 심각한 모델입니다. 이처럼 정확도만으로는 모델의 치명적인 문제점을 파악하기 어려울 수 있습니다.

오차 행렬: 예측 결과를 상세히 해부하는 표

이러한 정확도의 한계를 극복하기 위해 우리는 오차 행렬(Confusion Matrix)을 사용합니다. 오차 행렬은 이진 분류 모델의 예측 결과를 실제 결과와 교차하여 보여주는 2x2 형태의 표로, 모델이 얼마나 '혼동'하고 있는지 상세하게 보여줍니다.

예측 결과
Positive (P) Negative (N)
실제
결과
Positive (P) TP (True Positive)실제 P를 P로 올바르게 예측 FN (False Negative)실제 P를 N으로 잘못 예측 (2종 오류)
Negative (N) FP (False Positive)실제 N을 P로 잘못 예측 (1종 오류) TN (True Negative)실제 N을 N으로 올바르게 예측

핵심 평가 지표: 문제에 따라 다르게!

오차 행렬을 통해 우리는 모델의 성능을 더 세밀하게 평가하는 지표들을 계산할 수 있습니다. 어떤 지표를 중점적으로 볼지는 모델이 해결하고자 하는 '문제의 특성'과 '오류의 심각성'에 따라 달라집니다.

정밀도 (Precision)

계산식: TP / (TP + FP)

모델이 'Positive'라고 예측한 것 중에서 실제로 Positive인 비율입니다. 즉, 오탐(FP)을 얼마나 줄였는가를 나타냅니다.

언제 중요할까? FP(긍정으로 잘못 판단)가 치명적인 경우에 중요합니다.
예시: 스팸 메일 필터. 정상 메일(Negative)을 스팸(Positive)으로 잘못 분류하면(FP) 사용자가 중요한 메일을 놓치므로, 정밀도가 높아야 합니다.

재현율 (Recall)

계산식: TP / (TP + FN)

실제 Positive인 것 중에서 모델이 Positive로 제대로 찾아낸 비율입니다. 즉, 놓침(FN)을 얼마나 줄였는가를 나타냅니다. '민감도(Sensitivity)'라고도 합니다.

언제 중요할까? FN(부정으로 잘못 판단)이 치명적인 경우에 중요합니다.
예시: 암 진단 모델. 실제 암 환자(Positive)를 정상(Negative)으로 오진(FN)하면 생명과 직결되므로, 재현율이 높아야 합니다.

F1 스코어 (F1 Score)

계산식: 2 * (정밀도 * 재현율) / (정밀도 + 재현율)

정밀도와 재현율의 조화 평균입니다. 두 지표가 모두 중요하지만 어느 하나를 특별히 강조하기 어려울 때 사용합니다. 특히, 데이터가 불균형할 때 모델 성능을 올바르게 평가하는 데 유용합니다.