2023년 2월 19일 일요일

AUC(Area Under the ROC curve) 계산하기, roc_auc_score 사용하기 주의점

AUC란

AUC(Area Under the ROC curve)란  ROC Curve(Receiver-Operating Characteristic curve)의 아래 면적을 나타내는 수치로 분류 모델(분류기)의 성능을 나타내는 지표로 사용됩니다.


ROC란

ROC curve는 1-특이도(False Positive Rate, FPR, 거짓 긍정률)와 민감도(True Positive Rate, TPR, 참 긍정률)을 각각 x축, y축에 나타낸 그래프입니다. 



TPR 계산식

sensitivityrecallhit rate, or true positive rate (TPR)

FPR 계산식

fall-out or false positive rate (FPR)


FP, FP, TN, TP 값은 모두 confusion_matrix 를 통해서 구할 수 있습니다. 

sklearn 을 통해서 계산이 가능합니다.

sklearn.metrics.roc_auc_score — scikit-learn 1.2.1 documentation

sklearn.metrics.roc_auc_score(y_true, y_score, *, average='macro', sample_weight=None, max_fpr=None, multi_class='raise', labels=None)[source]

그런데 여기를 인자를 보면 y_score 를 넣도록 되어 있습니다. 그래서 테스트 해보았습니다.


sklearn에서 결과가 다르게 나옵니다. document 상에 나와있는 predict_proba를 사용해줘야 제대로된 결과 값을 받을 수 있습니다.

댓글 없음:

댓글 쓰기