머신러닝에서 분류 모델은 데이터를 분석해 라벨(클래스)을 예측합니다.
하지만 단순히 얼마나 맞췄는지만 보는 Accuracy(정확도)만으로는 성능을 평가하기에 충분하지 않습니다.
특히 불균형 데이터(imbalanced data) 상황에서는 다양한 지표를 함께 고려해야 모델의 실제 성능을 파악할 수 있습니다.
Confusion Matrix를 기반으로 Accuracy, Precision, Recall, F1 Score, AUC까지 모든 핵심 지표의 개념과 활용 방법을 정리합니다.
분류 모델 성능 지표: Confusion Matrix
목차
1. Confusion Matrix(혼돈 행렬)
Confusion Matrix는 분류 모델의 예측 결과를 실제 클래스 vs 예측 클래스로 나눈 2차원 표입니다.
모든 평가 지표의 기반이 되는 가장 중요한 개념입니다.
이진 분류(Binary Classification)를 기준으로 설명합니다.
◆ Positive / Negative 용어 정리
용어 | 뜻 | 의미 | 해석 |
Positive (1) | 관심 있는 클래스 | 예측하고 싶은 대상 | 양성 (예: 환자, 스팸, 불량품 등) |
Negative (0) | 관심 없는 클래스 | 나머지 일반 클래스 | 음성 (예: 정상, 일반메일, 양품 등) |
◆ 예시 데이터
항목 | 의미 | 샘플 번호 |
TP (True Positive) | 실제 1, 예측도 1 → 올바른 양성 예측 | 1, 3, 6 |
TN (True Negative) | 실제 0, 예측도 0 → 올바른 음성 예측 | 2, 7, 8 |
FP (False Positive) | 실제는 0(음성) 인데 1(양성) 으로 예측 → 오탐 | 4, 10 |
FN (False Negative) | 실제는 1(양성) 인데 0(음성) 으로 예측 → 미탐 | 5, 9 |
◆ Confusion Matrix 만들기
2. Accuracy(정확도)
모델이 전체 예측 중에서 얼마나 많이 맞췄는가를 평가하는 가장 기본적인 지표입니다.
◆ 해석: 모델은 전체 데이터 중 60%를 정확히 예측했습니다.
◆ 예시:
- 총 100건 중 90건을 맞추면 Accuracy는 90%.
◆ 활용 예:
- 가장 직관적인 지표이지만, 데이터가 불균형한 경우 오해를 일으킬 수 있음
- 예: 암 환자가 1%, 정상인이 99%인 데이터에서 전부 정상이라고 예측해도 Accuracy = 99%
- 그래서 정밀도나 재현율과 함께 사용해야 함
3. Precision(정밀도)
모델이 양성이라고 예측한 것 중에서, 실제로 양성인 비율입니다.
→ "맞다고 한 것 중 진짜 맞은 것의 비율"
◆ 해석: Positive(1)로 예측한 것 중 60%만 실제로 맞았습니다.
◆ 예시:
- 모델이 스팸 메일 10개를 탐지했는데, 그 중 7개만 진짜 스팸이면
- Precision = 7 / 10 = 0.7 (70%)
◆ 활용 예:
- 오탐지(FP)를 줄이는 것이 중요한 경우 중요
- 예: 스팸 필터, 부정거래 탐지, 정상인을 환자라고 진단하면 큰 문제가 되는 경우
4. Recall(재현율,민감도)
실제 양성(P) 중에서 모델이 얼마나 잘 찾아냈는지를 나타냅니다.
→ "실제 정답 중 내가 맞춘 비율"
◆ 해석: 실제 양성인 샘플 중 60%를 탐지했습니다.
◆ 예시:
- 실제 암 환자 10명 중 8명을 모델이 탐지했다면
- Recall = 8 / 10 = 0.8 (80%)
◆ 활용 예:
- 놓치면 안 되는 항목(FN)을 줄이는 것이 중요한 경우 중요
- 예: 암 진단, 불량품 검출, 보안 침입 탐지
5. F1 Score(정밀도와 재현율의 균형)
Precision과 Recall 사이의 균형을 평가하는 지표입니다.
특히 Precision(정밀도)과 Recall(재현율)이 모두 중요할 때 유용한 지표입니다.
◆ 해석: Precision과 Recall이 같기 때문에 F1도 0.6입니다.
◆ 예시:
◆ 활용 예:
- Precision과 Recall 중 하나가 낮으면 F1도 낮아짐
- 불균형 데이터셋에서 전체적인 판단 지표로 유용
- 예: 질병 탐지, 스팸 필터, 제품 결함 탐지, 신용카드 부정 결제 탐지 등
6. ROC Curve와 AUC
ROC Curve와 AUC (Area Under Curve)는 이진 분류(Binary Classification) 문제에서
모델의 전반적인 분류 성능을 시각적으로 평가하고 비교할 수 있는 매우 강력한 도구입니다.
# 실제 클래스 값 (1: 양성, 0: 음성)
y_true = np.array([1, 0, 1, 0, 1, 1, 0, 0, 1, 0])
#Logistic Regression, Random Forest, XGBoost, Neural Network 등 분류 모델을 학습한 후
predict_proba()를 통해 확률을 계산하게 됩니다.
# 각 샘플이 클래스 1(양성)일 확률
y_pred_proba = model.predict_proba(X_test)[:, 1]
# 예측 확률값 (모델이 예측한 양성일 확률)
# y_pred_proba = np.array([0.9, 0.1, 0.85, 0.75, 0.3, 0.95, 0.2, 0.1, 0.35, 0.7])
# -------------------------
# 2. ROC Curve와 AUC 계산
# -------------------------
# roc_curve 함수는 FPR, TPR, threshold 리스트를 반환
fpr, tpr, thresholds = roc_curve(y_true, y_pred_proba)
# AUC (곡선 아래 면적) 계산
auc_score = roc_auc_score(y_true, y_pred_proba)
◆ ROC Curve
- ROC는 모델의 임계값(threshold)을 변경하면서 FPR (False Positive Rate)과 TPR (True Positive Rate = Recall)의 변화를 시각화한 곡선입니다.
- 곡선이 왼쪽 위에 가까울수록 좋은 모델입니다.
- X축: False Positive Rate (FPR = FP / (FP + TN))
- Y축: True Positive Rate (TPR = Recall = TP / (TP + FN))
◆ AUC
AUC (Area Under the Curve)는 ROC 곡선 아래 면적을 의미하며, 모델 성능의 요약 지표입니다.
- ROC 곡선 아래 면적을 의미하며, 모델의 분류 능력을 0~1 사이의 값으로 정량화한 지표입니다.
- AUC = 1.0: 완벽한 모델
- AUC = 0.5: 무작위 분류기 수준
- AUC = 0.84 (현재 예시)
→ Positive와 Negative를 대부분 잘 구분하는 모델이라는 의미입니다.
◆ 해석 요약
용어 | 의미 | 해석 |
TPR (Recall) | 실제 Positive 중 맞춘 비율 | 높을수록 민감도 높음, 놓치면 안되는 경우 |
FPR | 실제 Negative 중 오탐한 비율 | 낮을수록 좋음 |
ROC 곡선 | TPR vs FPR 변화 시각화 | 곡선이 대각선 위일수록 우수 |
AUC | ROC 곡선 아래 면적 | 1에 가까울수록 분류 성능 우수 |
- 현재 ROC Curve는 왼쪽 위로 볼록하게 휘어져 있음
→ 모델이 양성과 음성을 상당히 잘 구분하고 있음을 의미 - AUC가 0.84이므로, 정밀하고 신뢰할 수 있는 분류 모델이라고 판단 가능
관련 글 링크
https://developers.google.com/machine-learning/crash-course/classification?hl=ko
분류 | Machine Learning | Google for Developers
이 과정에서는 임곗값, 혼동 행렬과 정확성, 정밀도, 재현율, ROC, AUC, 예측 편향과 같은 분류 측정항목을 비롯하여 이진 분류의 기초를 다룹니다. 다중 클래스 분류에 관한 간략한 소개는 모듈이
developers.google.com
https://developers.google.com/machine-learning/crash-course/classification/thresholding?hl=ko
임곗값 및 혼동 행렬 | Machine Learning | Google for Developers
분류 임곗값을 설정하여 로지스틱 회귀 모델을 이진 분류 모델로 변환하는 방법과 혼동 행렬을 사용하여 참양성 (TP), 참음성 (TN), 거짓양성 (FP), 거짓음성 (FN)의 네 가지 예측 유형을 평가하는 방
developers.google.com
분류: 정확성, 재현율, 정밀도, 관련 측정항목 | Machine Learning | Google for Developers
세 가지 주요 분류 측정항목인 정확성, 정밀도, 재현율을 계산하는 방법과 주어진 이진 분류 모델을 평가하기 위해 적절한 측정항목을 선택하는 방법을 알아봅니다.
developers.google.com
'2.인공지능 > 개념&이론' 카테고리의 다른 글
7. 객체 탐지 모델 성능 지표:IoU,Precision,Recall,AP,mAP,FPS (0) | 2025.04.23 |
---|---|
6. 회기 모델 성능 지표: MAE, MSE, RMSE, MAPE, MPE, R² (0) | 2025.04.23 |
3. 이미지 분석 기술: Classification, Object Detection, Segmentation (0) | 2025.04.22 |
2. 전이 학습(Transfer Learning):Fine-tuning (0) | 2025.04.16 |
1. 인공지능, 머신러닝, 딥러닝 개념 이해: AI,ML,DL (0) | 2025.04.16 |