1. 분류 성능 평가 지표
이진 분류 성능평가 지표 - 정확도, 오차행렬, 정밀도, 재현율, F1스코어, ROC AUC가 주로 성능 평가 지표가 활용됩니다.
2. 정확도(Accuracy)
-예측 결과가 동일한 데이터 건수 / 전체 예측 데이터 건수
-정확도는 직관적으로 모델 예측 성능을 나타내는 평가 지표입니다. 하지만 이진 분류의 경우 데이터의 구성에 따라 ML 모델의 성능을 왜곡할 수 있기 때문에 정확도 수치 하나만 가지고 성능을 평가하지 않습니다.
특히 정확도는 불균형한 레이블 값 분포에서 ML 모델의 성능을 판단할 경우, 적합한 평가 지표가 아닙니다.
3. 오차 행렬(Confusion Matrix)
- 오차 행렬은 이진 분류의 예측 오류가 얼마인지와 더불어 어떠한 유형의 예측 오류가 발생하고 있는지를 함께 나타내는 지표입니다.
- 정밀도는 예측을 P로 한 대상 중 예측과 실제 값이 P로 일치한 데이터의 비율을 뜻합니다.
-재현율은 실제 값이 P인 대상 중에 예측과 실제값이 P로 일치한 데이터의 비율을 뜻합니다.
-정밀도는 precision_score(), 재현율은 recall_score()제공
-정밀도와 재현율은 Positive 데이터 세트의 예측 성능에 좀 더 초점을 맞춘 지표이며, 분류 결정 임계값을조정해 정밀도 또는 재현율은 수치를 높이거나 낮출 수 있습니다.
4. 정밀도와 재현율의 상대적 중요도
재현율이 상대적으로 더 중요한 지표인 경우 실제 P 양성인 데이터 예측을 N로 잘못 판단하게 되면 업무상 큰 영향일 발생하는 경우 -> 암 진단, 금융사기 판별 등 가급적 양성이라고 하고 확인하는 것이 나은 경우
정밀도가 상대적으로 더 중요한 지표인 경우 실제 N음성인 데이터 예측을 P 양성으로 잘못 판단하게 되면 업무상 큰 영향이 발생하는 경우 -> 스팸메일, 가급적 음성이라고 하고 확인하는 것이 나은 경우
5. 정밀도/ 재현율 트레이드오프
분류하려는 업무의 특성상 정밀도 또는 재현율이 특별히 강조돼야 할 경우 분류의 결정 임곗값을 조정해 정밀도 또는 재현율의 수치를 높일 수 있습니다.
하지만 정밀도와 재현율은 상호 보완적인 평가 지표이기 때문에 어느 한쪽을 강제로 높이면 다른 하나의 수치는 떨어지기 쉽습니다. 이를 정밀도/재현율의 트레이드오프라고 부릅니다.
분류 결정 임곗값이 낮아질수록 P로 예측할 확률이 높아짐. 재현율 증가
6. 분류 결정 임곗값에 따른 정밀도, 재현율 곡선
사이킷런은 precision_recall_curve() 함수를 통해 임곗값에 따른 정밀도, 재현율의 변화값을 제공합니다.
7. 정밀도와 재현율의 맹점
- 정밀도를 100%로 만드는 법 : 확실한 기준이 되는 경우만 P로 예측하고, 나머지는 모두 N으로 예측. 정밀도 = TP/ (TP+FP)입니다.
-재현율을 100%로 만드는 법 : 모든 환자를 P로 예측하면 됩니다. TP / (FN+TP)
8. F1 Score
앞서 말한 정밀도와 재현율의 의 맹점을 보완한 방법이 F1입니다.정밀도와 재현율을 결합한 지표입니다. F1 스코어는 정밀도와 재현율이 어느 한쪽으로 치우치지 않는 수치를 나타날 때 상대적으로 높은 값을 가집니다. F1 스코어의 공식은 다음과 같습니다. 정밀도와 재현율 두 개의 값이 비슷할 때 F1 Score는 가장 큰 값을 가집니다. 즉 정밀도와 재현율이 어느 한쪽으로 치우치지 않을 때 좋은 값을 가집니다.
만일 A예측모델이 정밀도가 0.9, 재현율이 0.1 로 극단적인 차이가 나고, B예측모델은 정밀도가 0.5, 재현율이 0.5로 정밀도와 재현율이 큰 차이가 없다면, A예측모덱의 F1 스코어는 0.18이고, B예측모델의 F1스코어는 0.5로 B모델이 A모델에 비해 매우 우수한 F1스코어를 가지게 됩니다.
사이킷런은 f1 Score를 위해 f1_score() 함수를 제공합니다.
9. ROC곡선과 AUC
ROC(Receiver Operation Characteristic Curve)과 이에 기반한 AUC 스코어는 이진 분류의 예측 성능 측정에서 중요하게 사용되는 지표입니다. 일반적으로 의학 분야에서 많이 사용되지만, 머신러닝의 이진 분류 모델의 예측 성능을 판단하는 중요한 평가지표이기도 합니다.
ROC 곡선은 FPR(False Positive Rate)이 변할 때 TPR(True Positive Rate)가 어떻게 변하는지를 나타내는 곡선. FPR을 X축으로, TPR을 Y축으로 잡으면 FPR의 변화에 따른 TPR변화가 곡선 형태로 나타납니다.
분류의 성능 지표로 사용되는 것은 ROC 곡선 면적에 기반한 AUC값으로 결정합니다. AUC(Area Under Curve)값은 ROC 곡선 밑의 면적을 구한 것으로 일반적으로 1에 가까울수록 좋은 수치입니다.
10. ROC곡선
TPR은 True Positive Rate의 약자이며, 이는 재현율을 나타냅니다. 따라서 TPR은 TP/(FN +TP)입니다. TPR 즉 재현율은 민감도로도 불립니다.
FPR은 실제 N을 잘못 예측한 비율을 나타냅니다. 즉 실제는 N인데 P로, P인데 N으로 잘못 예측한 비율입니다.
FPR = FP / (FP +TN)입니다.
11. 사이킷런 ROC 곡선 및 AUC 스코어
사이킷런은 임곗값에 따른 ROC 곡선 데이터를 roc_curve()로, AUC 스코어를 roc_auc_score()함수로 제공
'머신러닝' 카테고리의 다른 글
사이킷런 (1) | 2022.01.24 |
---|---|
파이썬 기반 머신러닝 생태계 이해 (0) | 2022.01.21 |
스태킹 앙상블 모델 (0) | 2022.01.20 |
LightGBM (0) | 2022.01.20 |
XG Boost (0) | 2022.01.20 |