본문 바로가기
머신러닝/개념익히기

ML F1 score, ROC 곡선과 AUC

by ADELA_J 2023. 10. 23.

<F1 스코어>

- 정밀도와 재현율을 결합한 지표.

- 정밀도와 재현율이 어느 한쪽으로 치우치지 않는 수치를 나타낼 때 상대적으로 높은 값을 가짐.

앞에서 한 타이타닉 생존자 모델의 F1 스코어를 구해보자면

이전에 만들었던 get_clf_eval 함수에서 F1을 구하는 코드를 출력하는 코드를 다시 적고

결과값을 본다면 F1임곗값이 0.6일 때 가장 높음.

하지만 재현율이 떨어지고 있는 숫자라 판단이 중요함.

 

 


 

ROC곡선과  AUC

 

- 이진 분류의 예측 성능 측정에서 중요하게 사용되는 지표.

- FPR(False Positivbe Rate)이 변할 때  TPR(True Positive Rate)이 어떻게 변하는지 나타내는 곡선

- FPR이 X축, TPR이 Y축으로 잡으면 FPR의 변화에 따른 TPR의 변화가 곡선 형태로 나타남.

- TPR : 재현율. 실제값 Positive가 정확히 예측돼야 하는 수준. 

- TNR :  특이성Specificity. 민감도(TPR)에 대응하는 지표. 실제값 Negative가 정확히 예측돼야 하는 수준

 TN / (FP +  FN) 

- FPR : FP / (FP + TN) =  1 - 특이성 = 1 - TNR 

ROC 곡선이 가운데 직선에 가까울수록 성능이 떨어지고,

멀어질수록 성능이 뛰어난 것. 

FPR을 0부터 1까지 변경하면서 TPR의 변화 값을 구함. 

FPR = FP / (FP + TN)인데, FP 값이 0 이 되면 자연스럽게 FPR 은 0 이되고 (임곗값이 1이면)

TN을 0으로 만들면 임곗값을 0으로 지정하면되ㅣ는데,

그럼 Positive 확률 기준이 낮아져서 다 Positive로 예측. 

그러므로 0과 1은 나오기가 어렵.

 

 

▶ 타이타닉 생존자 예측 모델의 FPR, TPR, 임곗값을 구해보자면

 

#시각화를 해보자면

AUC(Area Under Curve)값은 ROC 곡선 밑의 면적을 구한 것으로서 일반적으로 1에 가까울수록 좋은 수치

FPR이 작은 상태에서 얼마나 큰 TPR을 얻을 수 있느냐가 관건

가운데 직선에서 멀어지고 왼쪽 상단 모서리 쪽으로 가파르게 곡선이 이동할수록 면적이 1에 가까워지는

좋은 ROC AUC 성능 수치를 얻게 됨.

▶ 수치를 구하게 된다면

그리고 계속해서 만들어온 get_clf_eval에 AUC구하는것도 추가해보면