3절 Evaluation(평가) 방법
본 포스팅은 [위키북스- 파이썬 머신러닝 완벽 가이드]를 활용한 스터디 포스팅입니다.
이번 포스팅에서는 저번 포스팅에 이어 분류 알고리즘을 평가 하는 다양한 방법 중 F1 score, ROC curve, AUC에 대해 알아보려 한다.
- 정확도(Accuracy)
- 오차 행렬(confusion matrix, 혼동 행렬)
- 정밀도(Precision)와 재현율(Recall)
- F1 score
- ROC curve와 AUC
- F1 score
F1 스코어는 정밀도와 재현율을 결합한 지표이다. 정밀도와 재현율이 한쪽으로 치우치지 않는 수치를 나타낼 때 상대적으로 높은 값을 지닌다.
F1 스코어 계산법
F1 스코어 계산법은 아래 그림과 같다.
F1 스코어 예시
1. Precision = 0.9 / Recall = 0.1 => F1 score = 0.18
2. Precision = 0.5 / Recall = 0.5 => F1 score = 0.50
- 두 Case에서는 정밀도와 재현율의 큰 차이가 없는 두번째 case의 F1 score가 성능이 좋다
F1 score는 위에서 설명한 임계값의 변화로 변동이 가능하다.
- ROC curve와 AUC
ROC 곡선이란?
ROC 곡선은 머신러닝의 이진 분류 모델의 예측 성능을 판단하는 지표이다.
ROC 곡선은 FPR(False Positive Rate)가 변할 때 TPR(True Positive Rate)이 어떻게 변하는지를 나타내는 곡선이다. 곡선을 그릴 때는 FPR을 X축으로, TPR을 Y축으로 하여 그래프를 그린다. 임계값을 통해 변경되는 민감도와 1-특이도에 의해 생성된다.
ROC Curve 도표
TPR(민감도) / TNR(특이도) 정의 및 특징
TPR(민감도)
- ROC 곡선의 Y축으로 사용되는 지표이다.
- TPR(True Positive Rate)은 4장에서 배운 재현율(Recall) 값과 동일하다.
- 실제값 Positive가 정확히 예측 되어야 하는 수준을 나타낸다.
- 질병을 예로 들면, 질병이 있는 사람은 질병이 있는 것으로 양성 판정 된 확률을 뜻한다.
TNR(특이도)
- TNR(True Positive Rate)은 TPR(True Positive Rate)과 대응하는 지표이다.
- 실제값 Negative가 정확히 예측 되어야 하는 수준을 나타낸다.
- 질병을 예로 들면, 질병이 없는 사람은 질병이 없는 것으로 음성 판정 된 확률을 뜻한다.
FPR(False Positive Rate) = FP / (FP + TN) = 1-TNR = 1-특이도
- FPR은 ROC 곡선을 그리는데 X축에 사용되는 지표이다.
AUC란?
ROC 곡선 아래의 넓이를 뜻한다.
랜덤수준의 데이터 셋에서는 AUC가 0.5이며, 1에 가까워 질수록 모델의 하이퍼 파라미터(임계값)가 좋은 성능을 낸다는 뜻이다.
댓글