모델 평가 지표 정리 – 정확도, 정밀도, F1 Score까지

머신러닝 모델을 처음 만들어봤을 때, 정확도가 90% 이상 나오자 속으로 꽤 잘 만들었다고 생각했습니다. 하지만 막상 실제 데이터에 적용해보니 예측 결과가 엉뚱하게 나오는 경우가 많았습니다. 그때 처음으로 ‘정확도만 보고 판단하면 안 되겠구나’라는 생각이 들었습니다. 이후 정밀도, 재현율, F1 Score 같은 지표들을 접하면서 비로소 모델 성능을 입체적으로 해석하는 것이 얼마나 중요한지 깨닫게 되었습니다.
정확도(Accuracy) – 가장 기본적인 성능 지표
정확도는 전체 예측 중에서 정답으로 맞힌 비율을 나타내는 가장 기본적인 모델 평가 지표입니다. 수식으로는 다음과 같이 표현됩니다.
정확도 = (정답으로 맞힌 건수) / (전체 건수)
예를 들어 100개의 샘플 중에서 90개를 정확히 예측했다면 정확도는 90%입니다. 간단하고 직관적인 지표이기 때문에 많은 입문자들이 가장 먼저 사용하게 됩니다.
그러나 정확도에는 한 가지 큰 함정이 있습니다. 바로 데이터가 불균형한 경우, 높은 정확도에도 불구하고 모델이 쓸모없을 수 있다는 점입니다. 예를 들어 암 환자 데이터 중 95%가 정상이고 5%만 환자일 경우, 모든 샘플을 ‘정상’이라고 예측하면 정확도는 95%가 됩니다. 하지만 이 모델은 정작 암 환자를 전혀 찾아내지 못하는 무의미한 결과를 만들어냅니다. 이처럼 클래스 불균형 문제에서는 정확도 하나만으로 모델을 평가할 수 없습니다.
정밀도(Precision)와 재현율(Recall) – 오류의 방향을 분석하다
정밀도와 재현율은 이진 분류 문제에서 오류의 종류에 따라 성능을 평가하는 데 사용됩니다. 둘은 서로 다른 관점을 제공합니다.
정밀도(Precision)는 모델이 ‘양성’이라고 예측한 것들 중에서 실제로 양성인 비율을 의미합니다. 즉, 모델이 얼마나 신중하게 양성으로 판단했는지를 나타냅니다.
정밀도 = TP / (TP + FP)
(TP: 진짜 양성, FP: 거짓 양성)
예를 들어 스팸 필터에서 스팸으로 분류된 메일 중 실제로 스팸인 비율이 높다면 정밀도가 높은 것입니다. 반대로 정밀도가 낮다면, 정상 메일도 스팸으로 잘못 판단하고 있다는 뜻입니다.
재현율(Recall)은 실제로 양성인 샘플 중에서 모델이 얼마나 많이 찾아냈는지를 나타냅니다. 즉, 놓치는 양성을 얼마나 줄였느냐의 개념입니다.
재현율 = TP / (TP + FN)
(FN: 거짓 음성)
예를 들어 암 진단에서 재현율이 높다는 것은, 실제 환자 중 많은 수를 모델이 잡아냈다는 뜻입니다. 이 경우 정밀도보다 재현율이 더 중요할 수 있습니다. 왜냐하면 환자를 놓치는 것이 더 치명적일 수 있기 때문입니다.
정밀도와 재현율은 대체로 상충 관계에 있습니다. 정밀도를 높이면 재현율이 낮아지고, 재현율을 높이면 정밀도가 낮아지는 경향이 있습니다. 따라서 두 지표를 균형 있게 고려하는 것이 필요합니다.
F1 Score – 정밀도와 재현율의 균형 잡힌 조화
정밀도와 재현율을 동시에 고려하기 위해 도입된 지표가 바로 F1 Score입니다. F1 Score는 정밀도와 재현율의 조화 평균으로 계산되며, 두 지표가 모두 높을수록 F1 Score도 높아집니다.
F1 Score = 2 * (정밀도 * 재현율) / (정밀도 + 재현율)
조화 평균은 평균보다 낮은 값의 영향을 더 크게 받기 때문에, F1 Score가 높다는 것은 두 지표가 고르게 우수하다는 의미입니다. 불균형 데이터셋에서 특히 유용하게 쓰이며, 한 쪽 지표에만 편향된 평가를 방지해줍니다.
예를 들어 어떤 모델이 정밀도는 0.9이지만 재현율이 0.1이라면 F1 Score는 0.18 정도에 불과합니다. 이는 모델이 양성을 지나치게 보수적으로 판단하고 있음을 의미하며, 모델의 개선 방향을 제시해주는 지표가 됩니다.
적절한 평가 지표 선택이 성능을 결정한다
모델 평가에서 가장 중요한 것은 ‘무조건 높은 수치’가 아니라, 주어진 문제 상황에 가장 적합한 지표를 선택하는 것입니다. 어떤 지표에 집중할지는 실제 적용 분야에 따라 달라질 수 있습니다.
예를 들어 암 진단처럼 놓치는 것이 위험한 경우에는 재현율을 높이는 것이 중요하고, 스팸 필터처럼 정상 데이터가 잘못 분류되면 안 되는 경우에는 정밀도가 더 중요합니다. 광고 클릭 예측처럼 양성 클래스가 희귀한 경우에는 정확도보다 F1 Score나 AUC-ROC 같은 지표가 더 신뢰할 수 있습니다.
초기에 저도 모델 정확도만을 기준으로 성능을 판단했지만, 다양한 지표들을 이해하고 나서부터는 문제의 본질에 따라 어떤 성능이 ‘좋다’고 할 수 있는지를 다시 생각하게 되었습니다. 때로는 낮은 정확도를 가진 모델이 실제 비즈니스 성과에는 더 기여할 수 있다는 사실도 알게 되었습니다.
결론적으로, 머신러닝 모델의 성능 평가는 단순한 숫자 경쟁이 아니라, 문제 해결을 위한 전략적 판단입니다. 다양한 지표를 이해하고, 그 의미를 데이터와 비즈니스 맥락에 연결할 수 있어야 진정한 모델의 가치를 평가할 수 있을 것입니다.
댓글
댓글 쓰기