인공지능 기본개념 및 용어

3.2.2 머신러닝 모델 학습과 평가 - Part3. 모델 평가

Seven AI Workers 2025. 5. 26. 09:25
728x90

📊 모델 성능 평가 지표 (Evaluation Metrics)

모델을 학습했다고 해서 끝난 것이 아닙니다!

얼마나 잘 학습했는지, 얼마나 정확하게 예측하는지를 정량적으로 평가하는 것이 매우 중요합니다. 이것이 바로 모델 평가 지표입니다.

✅ 정확도 (Accuracy) : 가장 기본적인 평가 지표

정확도 = 맞게 예측한 데이터수 / 전체 데이터수

 

📌 예시:

모델이 100개의 메일 중 90개는 일반 메일로, 10개는 스팸이라고 예측했는데,

90개 일반메일 중 80개가 진짜 일반메일리고, 10개 스팸 메일 중 8개가 진짜 스팸이면 정확도는 88%

🔎 주의할 점: 데이터가 불균형할 경우, 정확도는 오히려 오해를 불러올 수 있습니다.

스팸 메일 분류기에서 전체 이메일의 95%가 일반 메일이라면,

무조건 "일반 메일"이라고 예측해도 정확도는 95%입니다.

하지만 진짜 스팸은 하나도 잡아내지 못했죠!

🎯 정밀도 (Precision) : 모델이 "양성(Positive)"이라고 판단한 것 중, 실제로 맞은 비율

정밀도 = TP / (TP + FP)
  • TP (True Positive): 모델이 스팸이라 했고 진짜 스팸
  • FP (False Positive): 모델이 스팸이라 했지만 일반 메일
  •  

📌 예시:

모델이 10개의 스팸이라고 예측했는데, 그중 9개가 진짜 스팸이면 정밀도는 90%

📌 정밀도가 중요한 상황:

  • 카드사기 탐지, 암 진단 알림 등 잘못된 경고(FP)를 피하고 싶을 때

🔍 재현율 (Recall, 민감도) : 실제 양성 중, 모델이 올바르게 찾아낸 비율

재현율 = TP / ( TP + FN)
    • TP (True Positive): 모델이 스팸이라 했고 진짜 스팸
    • FN (False Negative): 모델이 정상이라 했지만 실제로는 스팸

📌 예시:

실제 스팸 10개 중 모델이 9개를 잡아냈다면 재현율은 90%

📌 재현율이 중요한 상황:

    • 암 조기 진단, 병원 응급 시스템 등 실제 환자를 놓치면 안 되는 경우

⚖️ F1 점수 (F1 Score) : 정밀도와 재현율의 균형을 잡는 지표

F1Score =2 × (×) / (+)

📌 특징:

    • 정밀도와 재현율이 모두 높아야 F1 점수도 높음
    • 한쪽이 낮으면 전체 점수도 낮아짐 → 균형 중요!

📌 언제 유용한가?

    • 불균형 클래스 문제에서 전체 성능을 하나의 숫자로 보고 싶을 때
    • 예: 스팸 분류, 불량품 감지, 질병 예측 등

🧮 혼동 행렬 (Confusion Matrix) : 예측 결과를 표 형태로 정리해 성능을 시각적으로 파악

실제 Positive
실제 Negative
예측 Positive
TP (True Positive)
FP (False Positive)
예측 Negative
FN (False Negative)
TN (True Negative)

📌 이 표를 바탕으로 정밀도, 재현율, 정확도 등 다양한 지표를 계산할 수 있습니다.

📈 ROC-AUC (Receiver Operating Characteristic - Area Under Curve)

모델이 긍정/부정 클래스를 얼마나 잘 구별하는지 나타내는 지표 (0.5이면 랜덤 수준, 1.0이면 완벽한 구분)

    • 의료, 금융 등에서 중요한 판단 기준
    • 다양한 임계값(threshold)에 따른 TPR(재현율)과 FPR(위양성률)을 비교

🧪 예: 암 검출 모델이 AUC 0.98이라면, 거의 완벽하게 암 환자와 정상인을 구분할 수 있다는 뜻입니다.

📌 어떤 지표를 쓸까?

상황
우선시할 지표
데이터 균형 O
정확도
불균형 데이터
F1 점수
거짓 경고가 치명적
정밀도
놓치는 것이 치명적
재현율
전체 구분 능력 평가
ROC-AUC

💡 모델 성능 평가 지표 요약

    • 정확도는 기본이지만, 상황에 따라 적절한 지표를 골라야 함
    • 정밀도/재현율/F1 점수는 특히 불균형 데이터에서 중요
    • 혼동행렬ROC-AUC는 분석 및 시각화에 유용

🧪 모델 평가 전략: Train-Test Split과 Cross-Validation

모델이 학습을 잘 마쳤다고 해도, 진짜 실력은 처음 보는 데이터를 얼마나 잘 예측하느냐로 평가됩니다.

이때 사용하는 전략이 바로 학습용 데이터와 테스트용 데이터를 나누는 방법, 즉 모델 평가 전략입니다.

📂 1. Train-Test Split (훈련-테스트 분리)

가장 간단한 방법은 데이터를 두 부분으로 나누는 것입니다.

    • Train Set (훈련 데이터): 모델을 학습시키는 데 사용
    • Test Set (테스트 데이터): 학습이 끝난 후, 모델의 성능을 평가하기 위해 사용

🧮 일반적인 분리 비율:

훈련 데이터
테스트 데이터
80%
20%
70%
30%

📉 주의할 점:

    • 데이터가 작을 경우, 운 좋게 쉬운 데이터만 테스트에 들어갈 수도 있습니다.
    • 이럴 땐 평가 결과가 신뢰성 떨어질 수 있음

🔁 2. Cross-Validation (교차 검증)

더 정밀하고 신뢰할 수 있는 평가 방법입니다.

데이터를 여러 번 훈련/테스트로 나누고, 평균 성능을 계산합니다.

🔹 K-Fold Cross-Validation : 데이터를 K개의 부분(폴드)으로 나누고, 각 폴드를 한 번씩 테스트셋으로 사용하며 나머지는 학습용으로 사용합니다.

📌 예: 5-Fold 교차 검증

실행 횟수
학습 데이터
테스트 데이터
1회차
Fold 2~5
Fold 1
2회차
Fold 1,3~5
Fold 2
...
...
...
5회차
Fold 1~4
Fold 5

📈 마지막에 5번의 성능 결과를 평균 내면 보다 신뢰도 높은 평가를 얻을 수 있습니다.

 

🧠 교차 검증의 장점

    • 모든 데이터가 한 번씩 테스트셋에 포함됨 → 데이터 낭비 없음
    • 한 번 평가로 끝나는 것이 아니라 여러 번 평가 → 더 안정적인 결과
    • 특히 데이터가 적을 때 유리

⏳ 기타 변형 전략

전략 이름
설명
Stratified K-Fold
각 폴드 내 클래스 비율 유지 (불균형 분류에 필수)
Leave-One-Out (LOOCV)
매번 1개만 테스트셋, 나머지 전부 학습 → 데이터 극소일 때 사용
TimeSeriesSplit
시간 순서 유지 필요할 때 사용 (예: 주식, 기상 데이터 등)

📋 추천 전략 선택 가이드

상황
추천 평가 전략
데이터 많음, 빠른 평가 필요
Train-Test Split
데이터 적음, 안정된 평가 필요
K-Fold Cross-Validation
클래스 불균형 있음
Stratified K-Fold
시간 순서 의미 있음
TimeSeriesSplit
매우 작은 데이터
Leave-One-Out CV

💡 모델 평가 전략 정리

    • 평가 전략은 모델의 일반화 성능을 정확히 파악하기 위한 핵심 절차
    • 단순 분할(Train-Test)과 반복 검증(Cross-Validation) 중 문제 특성에 맞게 선택
    • 검증 없이 테스트셋을 자주 사용하면 테스트셋이 더는 '미지의 데이터'가 아님 → 과적합 위험
728x90