[머신러닝] 모델 성능 평가

illilili·2025년 4월 3일
0

머신러닝

목록 보기
3/4
post-thumbnail

✅ 회귀 모델 평가 (Regression)

수치형 데이터를 예측하는 문제

🔹 평가 기준

  • 예측값과 실제값의 오차(차이)가 작을수록 좋은 모델

🔹 대표 지표

지표이름수식설명
MAEMean Absolute ErrorMAE = (1/n) * Σ 절댓값(y_i - ȳ_i)평균 절댓값 오차
MSEMean Squared ErrorMSE = (1/n) * Σ(y_i - ȳ_i)²평균 제곱 오차
RMSERoot MSERMSE = √[(1/n) * Σ(y_i - ȳ_i)²]실제 단위로 표현된 오차
MAPEMean Absolute Percentage ErrorMAPE = (100/n) * Σ(절댓값(y_i - ȳ_i) / y_i)실제값 대비 오차 비율 (%)
결정계수 (R-Squared)R² = 1 - [Σ(y_i - ȳ_i)² / Σ(y_i - ȳ)²]모델의 설명력, 1에 가까울수록 좋음

모든 지표는 작을수록 좋고, R²는 클수록 좋음

from sklearn.metrics import mean_absolute_error, mean_squared_error, root_mean_squared_error, mean_absolute_percentage_error, r2_score

print('MAE:', mean_absolute_error(y_test, y_pred))
print('MSE:', mean_squared_error(y_test, y_pred))
print('RMSE:', root_mean_squared_error(y_test, y_pred))
print('MAPE:', mean_absolute_percentage_error(y_test, y_pred))
print('R2 Score:', r2_score(y_test, y_pred))

'''
MAE: 13.976843190385708
MSE: 341.67887406681893
RMSE: 18.484557718993955
MAPE: 0.4718597698848258
R2 Score: 0.5744131358040061
'''

✅ 분류 모델 평가 (Classification)

카테고리(0/1 등)를 예측하는 문제

🔹 평가 기준

  • 예측 결과가 실제 값과 일치할수록 좋은 모델
  • 정확도를 높이는 것이 핵심

🔹 혼동 행렬 (Confusion Matrix)

예측: 0예측: 1
실제: 0TNFP
실제: 1FNTP
  • TP: 실제 1, 예측도 1 ⭕
  • TN: 실제 0, 예측도 0 ⭕
  • FP: 실제 0, 예측은 1 ❌
  • FN: 실제 1, 예측은 0 ❌

🔹 대표 지표

지표수식설명
Accuracy(TP + TN) / (TP + TN + FP + FN)전체 정답 비율
PrecisionTP / (TP + FP)1로 예측한 것 중 실제 1의 비율
RecallTP / (TP + FN)실제 1 중에서 1로 예측한 비율
F1-Score2 (Precision Recall) / (Precision + Recall)정밀도와 재현율의 조화 평균

상황에 따라 Precision(정밀도) 또는 Recall(재현율)을 더 중요하게 볼 수 있음

from sklearn.metrics import confusion_matrix, accuracy_score, precision_score, recall_score, f1_score, classification_report

print(confusion_matrix(y_test, y_pred))
print('Accuracy:', accuracy_score(y_test, y_pred))
print('Precision:', precision_score(y_test, y_pred))
print('Recall:', recall_score(y_test, y_pred))
print('F1 Score:', f1_score(y_test, y_pred))
print(classification_report(y_test, y_pred))
'''
[[77  7]
 [12 54]]
Accuracy: 0.8733333333333333
Precision: 0.8852459016393442
Recall: 0.8181818181818182
F1 Score: 0.8503937007874016
              precision    recall  f1-score   support

           0       0.87      0.92      0.89        84
           1       0.89      0.82      0.85        66

    accuracy                           0.87       150
   macro avg       0.88      0.87      0.87       150
weighted avg       0.87      0.87      0.87       150
'''
profile
코코딩딩

0개의 댓글