목차
- 모델 평가가 왜 중요한가?
- 분류(Classification) 모델 평가 지표
- 회귀(Regression) 모델 평가 지표
- scikit-learn으로 간단히 평가하는 방법
- 예제 코드로 실습하기
- 마무리 정리
1. 모델 평가가 왜 중요한가?
모델을 잘 만들었다고 해도,
제대로 평가하지 않으면 그 성능이 좋은지 나쁜지 알 수 없습니다.
모델 평가 지표는 다음을 판단하는 데 사용됩니다:
- 예측이 얼마나 정확한지
- 특정 클래스(예: 암환자)를 잘 잡아내는지
- 오차가 얼마나 큰지
- 지나치게 학습(overfitting)하지 않았는지
2. 분류(Classification) 모델 평가 지표
분류 모델은 클래스 라벨을 예측합니다. (예: 스팸/비스팸)
지표 설명
Accuracy (정확도) | 전체 중 맞춘 비율 |
Precision (정밀도) | Positive 예측 중 정답 비율 |
Recall (재현율) | 실제 Positive 중 맞춘 비율 |
F1 Score | Precision과 Recall의 조화 평균 |
ROC-AUC | 이진 분류 예측 성능 전체 곡선 면적 |
✨ 상황에 따라 어떤 지표를 더 중요하게 볼지는 달라질 수 있습니다.
3. 회귀(Regression) 모델 평가 지표
회귀 모델은 연속적인 수치 값을 예측합니다. (예: 집값 예측)
지표 설명
MAE (Mean Absolute Error) | 예측값과 실제값 차이의 절대 평균 |
MSE (Mean Squared Error) | 차이의 제곱 평균 |
RMSE | MSE의 제곱근 |
R² Score | 설명된 분산 비율 (0~1 사이 값, 1에 가까울수록 좋음) |
✨ MSE는 큰 오차에 더 민감하므로 상황에 따라 MAE와 함께 사용해요.
4. scikit-learn으로 간단히 평가하는 방법
📦 분류 평가 함수
from sklearn.metrics import accuracy_score, precision_score, recall_score, f1_score, classification_report
print(accuracy_score(y_true, y_pred))
print(classification_report(y_true, y_pred))
🧮 회귀 평가 함수
from sklearn.metrics import mean_absolute_error, mean_squared_error, r2_score
print(mean_absolute_error(y_test, y_pred))
print(mean_squared_error(y_test, y_pred))
print(r2_score(y_test, y_pred))
🎯 ROC-AUC
from sklearn.metrics import roc_auc_score
print(roc_auc_score(y_true, y_proba))
5. 예제 코드로 실습하기 (분류 모델 예시)
from sklearn.datasets import load_breast_cancer
from sklearn.model_selection import train_test_split
from sklearn.linear_model import LogisticRegression
from sklearn.metrics import classification_report
# 데이터 불러오기
data = load_breast_cancer()
X_train, X_test, y_train, y_test = train_test_split(data.data, data.target, test_size=0.3, random_state=42)
# 모델 훈련
model = LogisticRegression(max_iter=10000)
model.fit(X_train, y_train)
# 예측
y_pred = model.predict(X_test)
# 평가
print(classification_report(y_test, y_pred))
출력 결과:
precision recall f1-score support
0 0.95 0.91 0.93 64
1 0.94 0.97 0.95 107
accuracy 0.94 171
6. 마무리 정리
모델의 성능은 단순히 “정확하냐”로 판단하면 안 됩니다.
문제의 특성에 따라 다양한 지표를 복합적으로 고려해야 합니다.
scikit-learn은 머신러닝 입문자에게 가장 직관적이고 강력한 평가 도구를 제공합니다.
✨ Tip:
- 분류 문제 → classification_report()로 간단하게 전체 지표 확인
- 회귀 문제 → MAE, RMSE, R² Score 세 가지를 함께 확인!
'AI' 카테고리의 다른 글
RandomizedSearchCV와 GridSearchCV 비교 – 차이점과 선택 기준 (1) | 2025.04.16 |
---|---|
GridSearchCV로 하이퍼파라미터 튜닝하기 (0) | 2025.04.15 |
딥러닝 vs 머신러닝 vs AI – 개념 깔끔하게 정리해드림 (0) | 2025.04.12 |
AI의 윤리적 문제와 해결 방향 (1) | 2025.04.11 |
LLM이란? GPT, Claude, Gemini 차이점 정리 (0) | 2025.04.10 |