# 머신러닝 모델 평가 지표
## 개요
머신러닝 모델 평가 지표(Machine Learning Model Evaluation Metrics)는 훈련된 모델의 성능을 정량적으로 측정하고 비교하기 위한 수치적 척도들을 의미한다. 이러한 지표들은 모델이 실제 데이터에서 얼마나 잘 작동하는지를 객관적으로 평가할 수 있게 해주며, 서로 다른 알고리즘이나 하이퍼파라미터 설정을 비교하는 데 필수적인 도구이다.
모델 평가 지표의 선택은 해결하고자 하는 문제의 유형(분류, 회귀, 군집화 등)과 비즈니스 목적에 따라 달라진다. 적절한 평가 지표를 선택하지 않으면 모델의 실제 성능을 잘못 해석하거나, 부적절한 모델을 선택할 수 있다.
## 분류 문제 평가 지표
### 정확도 (Accuracy)
정확도는 가장 직관적인 분류 성능 지표로, 전체 예측 중 올바르게 분류된 비율을 나타낸다.
$\text{Accuracy} = \frac{\text{올바른 예측 수}}{\text{전체 예측 수}} = \frac{TP + TN}{TP + TN + FP + FN}$
여기서 TP(True Positive), TN(True Negative), FP(False Positive), FN(False Negative)는 혼동 행렬(Confusion Matrix)의 각 요소를 의미한다.
정확도는 클래스 분포가 균형적일 때 유용하지만, 불균형 데이터셋에서는 오해의 소지가 있다. 예를 들어, 99%가 음성 클래스인 데이터에서 모든 예측을 음성으로 하면 99%의 정확도를 얻을 수 있지만, 실제로는 양성 클래스를 전혀 식별하지 못한다.
### 정밀도 (Precision)
정밀도는 양성으로 예측한 것 중 실제로 양성인 비율을 측정한다.
$\text{Precision} = \frac{TP}{TP + FP}$
정밀도가 높다는 것은 거짓 양성(False Positive)이 적다는 의미이다. 스팸 메일 필터링이나 의료 진단과 같이 거짓 양성의 비용이 큰 경우에 중요한 지표이다.
### 재현율 (Recall)
재현율(민감도, Sensitivity라고도 함)은 실제 양성 중에서 올바르게 양성으로 예측한 비율을 나타낸다.
$\text{Recall} = \frac{TP}{TP + FN}$
재현율이 높다는 것은 거짓 음성(False Negative)이 적다는 의미이다. 암 진단이나 사기 탐지와 같이 놓치면 안 되는 경우에 중요한 지표이다.
### F1 점수 (F1 Score)
F1 점수는 정밀도와 재현율의 조화 평균으로, 두 지표 사이의 균형을 고려한다.
$\text{F1 Score} = 2 \times \frac{\text{Precision} \times \text{Recall}}{\text{Precision} + \text{Recall}} = \frac{2TP}{2TP + FP + FN}$
F1 점수는 정밀도와 재현율이 모두 높을 때만 높은 값을 가지므로, 불균형 데이터셋에서 모델 성능을 종합적으로 평가하는 데 유용하다.
### ROC AUC
ROC(Receiver Operating Characteristic) 곡선은 다양한 임계값에서 True Positive Rate(재현율)과 False Positive Rate의 관계를 나타낸 곡선이다. AUC(Area Under the Curve)는 ROC 곡선 아래 영역의 넓이로, 0.5에서 1.0 사이의 값을 가진다.
$\text{False Positive Rate} = \frac{FP}{FP + TN}$
AUC 값이 0.5에 가까우면 무작위 추측 수준이고, 1.0에 가까울수록 완벽한 분류 성능을 의미한다. ROC AUC는 클래스 분포에 상대적으로 덜 민감하여 불균형 데이터셋에서도 안정적인 평가를 제공한다.
## 회귀 문제 평가 지표
### 평균 제곱 오차 (MSE)
평균 제곱 오차는 예측값과 실제값 사이의 제곱 오차의 평균이다.
$\text{MSE} = \frac{1}{n} \sum_{i=1}^{n} (y_i - \hat{y}_i)^2$
MSE는 큰 오차에 더 큰 가중치를 부여하므로 이상치(outlier)에 민감하다. 값이 작을수록 좋은 성능을 의미한다.
### 평균 절대 오차 (MAE)
평균 절대 오차는 예측값과 실제값 사이의 절댓값 오차의 평균이다.
$\text{MAE} = \frac{1}{n} \sum_{i=1}^{n} |y_i - \hat{y}_i|$
MAE는 MSE와 달리 이상치에 덜 민감하며, 실제 오차의 크기를 직관적으로 해석할 수 있다.
### 결정 계수 (R²)
결정 계수는 모델이 데이터의 분산을 얼마나 잘 설명하는지를 나타내는 지표이다.
$R^2 = 1 - \frac{\sum_{i=1}^{n} (y_i - \hat{y}_i)^2}{\sum_{i=1}^{n} (y_i - \bar{y})^2}$
여기서 $\bar{y}$는 실제값의 평균이다. R² 값은 일반적으로 0과 1 사이에 위치하며, 1에 가까울수록 모델의 설명력이 높다는 의미이다.
### 평균 절대 백분율 오차 (MAPE)
MAPE는 백분율로 표현된 평균 절대 오차로, 서로 다른 스케일의 데이터를 비교할 때 유용하다.
$\text{MAPE} = \frac{1}{n} \sum_{i=1}^{n} \left|\frac{y_i - \hat{y}_i}{y_i}\right| \times 100\%$
MAPE는 해석이 용이하지만 실제값이 0에 가까운 경우 불안정해질 수 있다는 단점이 있다.
## 평가 지표 선택 가이드라인
평가 지표의 선택은 문제의 특성과 비즈니스 요구사항을 고려해야 한다.
**불균형 분류 문제**에서는 정확도보다 정밀도, 재현율, F1 점수, 또는 ROC AUC를 사용하는 것이 적절하다. 특히 의료 진단처럼 거짓 음성의 비용이 큰 경우에는 재현율을, 스팸 필터링처럼 거짓 양성의 비용이 큰 경우에는 정밀도를 우선시해야 한다.
**회귀 문제**에서는 이상치의 영향을 고려해야 한다. 이상치가 많은 데이터에서는 MSE보다 MAE가 더 안정적인 평가를 제공한다. 또한 데이터의 스케일이 중요한 경우 MAPE를, 모델의 설명력을 평가하고자 하는 경우 R²를 사용할 수 있다.
**다중 클래스 분류**에서는 매크로 평균(macro average), 마이크로 평균(micro average), 가중 평균(weighted average) 등의 방법으로 개별 클래스의 성능을 집계할 수 있다.
## 교차 검증과 평가 지표
단일 train-test 분할로 얻은 평가 지표는 데이터 분할 방법에 따라 편향될 수 있다. 이를 해결하기 위해 k-fold 교차 검증을 사용하여 여러 번의 평가를 수행하고 평균과 표준편차를 계산하는 것이 바람직하다.
또한 평가 데이터셋은 학습 과정에서 전혀 사용되지 않은 홀드아웃(hold-out) 데이터여야 하며, 시간 순서가 있는 데이터의 경우 시간 순서를 고려한 분할 방법을 사용해야 한다.
---
관련 문서: [[머신러닝 알고리즘 개요]], [[교차 검증 기법]], [[데이터 전처리 방법]], [[하이퍼파라미터 튜닝]], [[모델 선택과 비교]]