코딜기

[Python/ML] 모델 평가(Model Evaluation) - ROC Curve/AUC 본문

ML & DL/Model Evaluation

[Python/ML] 모델 평가(Model Evaluation) - ROC Curve/AUC

코딜기 2022. 12. 21. 12:58
반응형

ROC와 AUC란 무엇일까요?

  • ROC Curve(Receiver-Operating Characteristic curve)는 민감도와 특이도가 서로 어떤 관계를 가지며 변하는지를 2차원 평면상에 표현한 Curve입니다.
  • AUC(Area Under Curve)는 ROC Curve의 면적을 뜻하고, 1에 가까울수록 좋은 모델을 의미합니다.

X축은 FP, Y축은 TP이다.

  • FP와 TP에 대한 개념은 여기에서 확인 가능합니다.

AUC(Area Under Curve)

from sklearn.metrics import roc_auc_score

# 데이터 스플릿으로 y_valid와 모델 예측으로 y_pred_proba를 구한 후 실행
# 모델 검정이 없다면 y_true값으로 y_valid 대체
auc = roc_auc_score(y_valid, y_pred_proba)
print(auc)
  • AUC를 계산하기 위해서는 확률 예측값(predict_proba)이 필요합니다. 클래스 예측값(predict)은 확률값 대신 예측된 클래스 값을 반환하기 때문에 AUC값을 계산할 수 없습니다.
  • 이진분류모델일때는 예측값(predict)을 그대로 넣어도 되지만 다중분류모델일 때는 확률값을 넣어야 합니다.

도메인에 따라 적절한 평가 지표를 선택해서 확인해야 합니다.

반응형
Comments