1. F1 score
F1 score란 정밀도와 재현율을 결합에 어느 한 쪽으로 치우치지 않는 수치를 나타낼 때 상대적으로 높은 값을 가지게 되는 지표입니다.
위의 F1_score공식을 보면 알 수 있듯이 F1_score는 정밀도와 재현도의 가중 평균입니다. F1 score는
sklearn.metrics의 f1_score 모듈을 통해 반환할 수 있습니다.
다음은 임곗값 조절에 따른 f1_score의 변화입니다.
정밀도와 재현율이 극단적으로 차이날 수록 f1_score의 값이 감소함을 알 수 있습니다.
2. ROC곡선과 AUC
ROC곡선은 FPR이 변할 때 TPR이 어떻게 변하는지 나타내는 곡선이며, 머신러닝 이진 분류 모델의 예측 선응을 판단하는 중요한 평가 지표입니다.
TPR은 재현율이고 민감도라고도 불립니다 그리고 TRP민감도와 대응하는 지표로 TNR 즉 특이성이라는 지표가 있습니다.
TPR = TP/(FN + TP), TNR = TN / (FP + TN) TNR(특이성)은 TN / (FP + TN)인데,
질병이 있는 사람은 질병이 있는 것으로, 없는 사람은 없는 것으로 예측한 것입니다. ROC 곡선의 X축이 되는 FPR은
1 - 특이성 으로 구할 수 있습니다.[1-(TN / (FP + TN)) = FP / (FP + TN) = FPR]
위와 같이 roc_curve 모듈을 통해 y_test와 pred_proba array에서 Positive 예측 칼럼을 파라미터로 받아
FPR, TPR, 임곗값을 반환합니다. 위 함수로 ROC곡선을 시각화 해보겠습니다.
위 데이터는 피마원주민 당뇨병 예측 예제입니다.
일반적으로 ROC 곡선 자체보다 ROC 곡선 면적에 기반한 AUC값이 성능 지표로 사용됩니다. AUC는 ROC곡선 밑의
면적을 구한 것으로서 1에 가까울 수록 좋은 수치인데, AUC 수치가 커지려면 FPR이 작은 상태에서 얼마나 큰 TPR을 얻을 수 있느냐가 중요합니다. ROC 곡선이 왼쪽 상단 모서리 쪽으로 가파르게 이동할수록 AUC값이 1에 가까워지며 좋은 ROC, AUC성능 수치를 얻게 됩니다.
지금까지 알아본 성능 지표를 위해 필요한 모듈을 불러오고 한꺼번에 반환해 보겠습니다.
내 생각
아직 경우에 따라 어느 성능지표에 어느 정도의 가중치를 둬야할지 잘 모르겠어서 찾아보거나
심화된 내용에 궁금한 내용이 포함되어있는지 확인해볼 생각이다.
'AI_basic > ML' 카테고리의 다른 글
[ML] GridSearchCV - 교차 검증과 최적 하이퍼 파라미터 튜닝을 같이 (0) | 2021.07.21 |
---|---|
[ML] 지도학습/분류 결정트리 Decision Tree (0) | 2021.07.13 |
[ML] 분류모델의 성능 평가 지표 Part.2 정밀도/재현율 트레이드오프(Trade-off) (0) | 2021.07.07 |
[ML] 분류모델의 성능 평가 지표 Part.1 오차행렬과 정확도,정밀도,재현율 (0) | 2021.07.06 |
[ML] 사이킷런(Scikit-learn)으로 머신러닝 맛보기(붓꽃 품종 예측) (0) | 2021.07.06 |