본문 바로가기

Lecture ML

머신러닝 강좌 #9] 머신러닝 모델 성능 평가 - F1, ROC-AUC

반응형

 


F1 Score

 

F1 스코어(Score)는 정밀도와 재현율을 결합한 지표입니다. F1스코어는 정밀도와 재현율이 어느 한쪽으로 치우치지 않는 수치를 나타낼 때 상대적으로 값을 가집니다. F1 스코어의 공식은 다음과 같습니다.

 

 

만일 A예측 모델의 경우 정밀도가 0.9. 재현율이 0.1로 극단적인 차이가 나고, B예측 모델은 정밀도가 0.5, 재현율이 0.5로 정밀도와 재현율이 큰 차이가 없다면 A예측 모델의 F1스코어는 0.18이고, B예측 모델의 F1 스코어는 0.5로 B모델이 A모델에 비해 매우 우수한 F1 스코어를 가지게 됩니다.

 


ROC - AUC

 

ROC, AUC Curve에 대해 : Receiver Operating Characteristic, Area Under the Curve

AUC-ROC Curve는 다양한 임계값에서 모델의 분류 성능에 대한 측정 그래프를 나타낼 수 있습니다. ROC곡선과 이에 기반한 AUC스코어는 이진 분류의 예측 성능 측정에서 중요하게 사용되는 지표입니다

nicola-ml.tistory.com

ROC 곡선과 이에 기반한 AUC 스코어는 이진 분류의 예측 성능 측정에서 중요하게 사용되는 지표입니다. ROC 곡선은 우리말로 수신자 판단 곡선으로 불립니다. 이름이 약간 이상한 것은 원래 2차대전 때 통신 장비 성능 평가를 위해 고안된 수치이기 때문입니다. 일반적으로 의학 분야에서 많이 사용되지만, 머신러닝의 이진 분류 모델의 예측성능을 판단하는 중요한 평가 지표이기도 합니다. 

 

ROC곡선은 FPR(False Positive Rate)이 변할 때 TPR(True Positive Rate)이 어떻게 변하는지를 나타내는 곡선입니다. FPR을 X축으로, TPR을 Y축으로 잡으면 FPR의 변화에 따른 TPR의 변화가 곡선형태로 나타납니다.

 

TPR은 True Positive Rate의 약자이며, 이는 재현율을 나타냅니다. 또한 재현율은 민감도로 불리기도 합니다. 이 민감도에 대응하는 지표로 TNR이라고 불리는 특이성이 있습니다.

 

  • 민감도(TPR)은 실제값 Positive(양성)가 정확히 예측돼야 하는 수준을 나타냅니다.(질병이 있는 사람은 질병이 있는 것으로 양성 판정)
  • 특이성(TNR)은 실제값 Negative(음성)가 정확히 예측대야 하는 수준을 나타냅니다.(질병이 없는 건강한 사람은 질병이 없는 것으로 음성 판정)

 

위의 ROC곡선을 예로 볼때 가운데 직선은 ROC곡선의 최저값입니다. 왼쪽 하단과 오른쪽 상단을 대각선으로 이은 직선은 동전을 무작위로 던져 앞/뒤를 맞추는 랜덤 수준의 이진 분류의 ROC직선입니다. (AUC는 0.5)

 

ROC곡선이 가운데 직선에 가까울수록 성능이 떨어지는 것이며, 멀어질수록 성능이 뛰어난 것입니다. 사이킷런은 ROC곡선으 구하기 위해 roc_curve() API를 제공합니다. 사용법은 precision_recall_curve() API 와 유사합니다. 단지 변환값이 FPR, TPR, 임곗값으로 구성돼 있을 뿐입니다. 

 

입력파라미터

  • y_true: 실제 클래스 값 array
  • y_score: predict_proba()의 반환 값 array에서 positive칼럼의 예측 확률이 보통 사용됨. array

 

반환값

  • fpr: fpr값을 array로 반환
  • tpr: tpr값을 array로 반환
  • thresholds: threshold값을 array로 반환
반응형