본문 바로가기
Machine Learning

분류 모델(Classification)의 성능지표

by xper100 2021. 2. 18.

분류모델의 경우엔 다양한 성능지표가 존재하며 다른 수치로 평가를 해야한다. 이번시간에는 1)오차행렬 (Confusion Matrix), 2) 정확도(Accuracy), 3) 정밀도(Precision), 4) 재현율(Recall), 5) F1 Score 그리고 6) ROC-AUC 총 6개의 성능지표에 대해 알아보자.


1. 오차 행렬 (Confusion Matrix)

  • 이진분류의 예측오류를 2x2 행렬로 보여주고 다른 유형의 예측오류를 나타내주는 지표
  • sklearn.metrics confusion_matrix()

2. 정확도 (Accuracy)

  • 모델 예측 성능을 직관적으로 보여주는 지표
  • 이진분류의 경우에는 정확도 수치로만 모델의 성능을 평가하기에는 위험이 따름 (데이터의 구성에 따른 왜곡 가능성)
  • 특히 데이터가 불균형한 레이블 값인 경우에는 적합하지 않음 ex) Yes(99.99%) vs No(0.01%)
  • sklearn.metrics accuracy_score()

3.  정밀도 (Precision) vs 재현율 (Recall)

3.1 정밀도

  • 예측을 Positive로 한 대상 중 예측과 실제값이 Positive로 일치한 비율
  • sklearn.metrics precision_score()

3.2 재현율

  • 실제 값이 Positive인 데이터중에서 예측과 실제 값이 Positive로 일치한 데이터의 비율
  • sklearn.metrics recall_score()

3.3 상대적 중요도 (정밀도 vs 재현율)

  • 정밀도 > 재현율 - 실제로 양성(Positive)인 데이터를 음성(Negative)로 판단했을 때 영향이 큰 경우
    • ex) 금융사기 판별, 암 진단
  • 정밀도 < 재현율 - 실제로 음성(Negative)인 데이터를 양성(Positive)로 판단했을 때 영향이 큰 경우
    • ex) 스팸 메일

※참고※ 불균형 데이터(Imbalanced data)일 경우에는 찾고자 하는 매우 적은 수의 Target을 양성(Positive)로 설정하여 1값을 부여하고, 나머지는 음성(Negative)으로 0값을 부여한다.

 

3.4 재현율과 정밀도의 트레이드오프

  • 재현율과 정밀도는 상호보안적인 지표이기에 트레이드오프는 필연적
  • 따라서 상황 또는 업무에 따라서 분류 임계값(Threshold)를 정하여 성능지표를 설정해야한다.
  • Defalut값은 50%
  • sklearn predict_proba() 또는 Binarizer()를 통해 임계값 설정 가능
  • sklearn precision_recall_curve()를 통해 임계값에 따른 정밀도와 재현율의 변화값을 얻을 수 있음

 


4. F1 Score

  • 정밀도와 재현율을 결합한 지표
  • 모델의 정밀도와 재현율의 수치값들이 균형잡혀 있을 높은 수치를 나타냄
  • sklearn f1_score()

5. ROC-AUC(Receiver Operation Characteristic Curve)

ROC-AUC score는 이진분류모델에 있어서 가장 중요한 지표이다. 

 

5.1 ROC 곡선(Receiver Operation characteristic Curve)

  • TPR(True Positive Rate)이 어떻게 변하는지를 나타냄
  • TPR = TP / (FN + TP)
  • FPR = FP / (FP + TN)
  • 그래프는 TPR vs FPR의 형태를 가짐
  • sklearn roc_curve()
  • sklearn roc_auc_score()

 

5.2 AUC(Area Under Curve)

  • ROC곡선 밑의 면적을 나타냄
  • 1에 가까울수록 좋은 수치

 

회귀모델의 성능지표와는 다르게 이진분류(Classification)모델은 다양한 성능지표값들이 존재하며 특히 재현율과 정밀도의 중요성이 상대적으로 크다.

 

 

 

Reference

파이썬 머신러닝 완벽가이드

댓글


출처: https://privatedevelopnote.tistory.com/81 [개인노트]