머신러닝에서 모델을 평가할 때, 단순히 정확도(Accuracy)만으로 모델의 성능을 평가하기에는 충분 치 않은 경우가 많다. 특히 클래스 불균형이 존재하거나, 오탐/누락의 비용이 다른 문제에서는 정확도 외의 다양한 성능 지표들을 함께 고려해야 한다.
이번에는 머신러닝 분류 모델의 평가에서 사용되는 지표들에 대해 정리해보자!
1. 혼동 행렬 (Confusion Matrix)
혼동 행렬은 분류 모델의 예측 결과를 실제 정답과 비교해 예측이 맞았는지 틀렸는지를 4가지 유형으로 나눈 표이다.
모델이 어떤 경우에 올바르게 예측하고, 어떤 경우에 오류가 발생했는지 시각적으로 확인하는데 유용하다. 이진 분류에서 기본적인 성능 분석 도구로 사용되며, 다중 클래스 분류에도 n×n 형태로 확장 가능하다.
2. 성능 지표
지표 | 정의 | 수식 | 특징 |
Accuracy (정확도) | 전체 예측 중 정답 비율 | ![]() |
전체 성능 파악에 용이하나, 클래스 불균형에 민감 |
Precision (정밀도) | 양성 예측 중 실제 양성 비율 | ![]() |
잘못된 양성 예측(False Positive)을 줄이는 데 초점 |
Recall,Sencitivity (재현율, 민감도) |
실제 양성 중 맞춘 비율 | ![]() |
놓친 양성(False Negative)을 줄이는 데 초점 |
F1-score | 정밀도와 재현율의 조화 평균 | ![]() |
Precision과 Recall 간 균형 평가 지표 |
Accuracy (정확도)
The Accuracy is used to find the portion of correctly classified values. It tells us how often our classifier is right
- 전체 샘플 중에서 예측이 맞은 비율 (정답률)
- 클래스 불균형이 심한 경우, 높은 Accuracy가 무의미할 수 있다. 상당한 클래스 불균형이 있는 경우, 모델은 모든 경우에 대해 다수 클래스를 예측하고 높은 정확도 점수를 얻게된다. 하지만 정말 중요한 소수 클래스의 분류는 잘 이루어지는 지 장담할 수 없다.
Precision (정밀도)
Precision is used to calculate the model's ability to classify positive values correctly. It answers the question,
'When the model predicts a positive values, how often is it right?'
- 모델이 양성(Positive)이라고 예측한 것들 중 실제로 양성인 비율
- “예측한 것 중에 얼마나 맞췄나?” (예측 결과 중심)
- 틀리면 안되는 예측을 줄이고 싶을 때
- Precision이 높다는 것은 모델이 양성이라고 판단한 경우에 실제로 맞을 확률이 높다는 의미이다.
Recall (재현율, 민감도)
Precision is used to calculate the model's ability to classify positive values correctly. It answers the question, 'How often does the model actually predict the correct positive values?'
- 실제 양성 중에서 모델이 정확히 양성으로 예측한 비율
- “실제 양성을 얼마나 놓치지 않고 찾았나?” ( 실제 데이터 중심)
- 놓치면 안 되는 대상을 다 잡고 싶을 때
- Recall이 높다는 것은 실제 양성 케이스를 잘 놓치지 않았다는 의미이다.
F1-score
It is the harmonic mean of Recall and Precision. It is useful when you need to take both Precision and Recall into accout
- Precision과 Recall의 조화 평균으로, 두 지표 간 trade-off가 존재할 때 균형을 평가할 수 있는 지표
- 클래스 불균형이 심한 상황에서 모델 평가에 적합한 지표
상황별로 어떤 지표를 중심으로 보면 되고, 이에 따라 어떤 결과가 더 좋은 것일 지 확인해보자!
상황1 ) 암질병 진단 모델 비교
암 진단 모델에서는 실제 암 환자를 정확히 찾아내는 것이 가장 중요한 목표가 된다.
반대로, 정상인(암이 없는 사람)을 암 환자로 잘못 진단하는 경우에도 물론 문제가 될 수 있지만 오진의 경우에 심각성을 고려하면 실제 암환자를 놓치는 것은 더욱 위험할수 있다. 따라서 잘못된 음성 예측(False Negative)인 암 환자를 정상으로 판단해 넘기는 경우를 최소화시킨 모델이 더 좋은 모델이 되고 정확도나 정밀도 보다는 실제 암 환자를 얼마나 놓치지 않고 찾아내는지에 대한 Recall을 중심적으로 봐야한다.
모델 1와 모델 2는 Accuracy에서는 동일하게 80%로 비슷한 수준을 보인다. 그러나 이 상황에서는 단순 정확도보다 실제 암 환자를 얼마나 잘 놓치지 않고 찾아내는지에 대한 Recall)이 핵심 지표가 된다.
모델 1는 암 환자 100명 중 90명을 정확히 찾아냈고(Recall = 0.90), 놓친 환자가 10명이다. 반면 모델 2는 70명만 찾아내고 30명을 놓쳤으며(Recall = 0.70), 그만큼 더 많은 암 환자를 정상으로 잘못 분류했다.
Precision 측면에서는 모델 2가 더 높은 수치를 기록했지만, 이는 암이 없는데도 암으로 잘못 진단한 비율이 상대적으로 적다는 의미일 뿐이다. 따라서 이와 같은 질병 진단 상황에서는 모델 1이 더 적합한 선택이며 환자를 놓치지 않는다는 점에서 성능이 더 우수하다고 판단할 수 있다.
상황2 ) 스팸 필터링 시스템 비교
스팸 필터링 시스템의 목적은 정상 메일들 중 스팸 메일을 정확히 찾아내는 것이다.
정상 메일을 스팸으로 잘못 분류하면(FP) 중요한 업무 메일, 고객 메일, 입사 제안서 등을 놓치는 문제가 발생할 수 있다.
스팸 메일을 놓쳐서 사용자가 한두 개 더 받는 것보다, 정상 메일이 스팸 처리되는 일이 더 큰 피해로 이어질 수 있다.
따라서 이 경우엔 Precision(정밀도)인 스팸으로 분류한 메일 중 실제 스팸의 비율이 가장 중요한 평가 기준이 된다.
모델 1는 스팸 메일을 더 많이 찾아내긴 했지만(Recall = 0.80), 정상 메일도 40건이나 잘못 스팸으로 분류한 것을 확인할 수 있다.
정밀도(Precision)는 0.667로 낮아, 스팸이라고 판단한 메일 중 33%는 정상 메일이었다는 것을 의미한다. 이런 상황은 사용자 입장에서 중요한 메일이 사라지는 심각한 문제가 발생한 것이다.
반면 모델 2는 스팸을 일부 놓치긴 했지만(Recall = 0.60), 스팸으로 분류한 메일 중 85.7%는 실제 스팸이었고(Precision = 0.857), 정상 메일을 잘못 스팸 처리한 경우가 단 10건뿐이었습니다.모델 2가 스팸 메일을 가장 많이 거른 상태에서 사용자에게 정상 메일을 보낸게 되므로 모델2가 더 좋은 모델이라고 할 수 있다.
'AI > ML' 카테고리의 다른 글
[ML] Linear Regression - 1 (0) | 2025.04.02 |
---|---|
[ML] Bagging 과 Boosting (0) | 2025.03.27 |
[ML] 앙상블 학습(Ensemble Learning) (0) | 2025.03.27 |
[ML] 의사결정 트리 (Decision Tree) (0) | 2025.03.27 |