분류모델의 경우엔 다양한 성능지표가 존재하며 다른 수치로 평가를 해야한다. 이번시간에는 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
파이썬 머신러닝 완벽가이드
'Machine Learning' 카테고리의 다른 글
경사하강법 (Gradient Descent) (0) | 2021.06.10 |
---|---|
분류 알고리즘(1) - 결정트리(Decision Tree) (0) | 2021.02.19 |
이상 데이터 검출(이진분류)을 위한 언더 샘플링과 오버 샘플링 (0) | 2021.02.19 |
댓글