머신러닝과 딥러닝/머신러닝

평가 지표 #2 - Classification metric

Stat_in_KNU 2021. 2. 22. 18:25

도입

 

첫 번째 평가 지표 게시물인 Regression Metric에 이어 Classification metric 즉, 분류 평가 지표에 대해서 정리해보겠습니다. 

 


Confusion Matrix (혼동 행렬)

출처 : https://manisha-sirsat.blogspot.com/2019/04/confusion-matrix.html

위 이미지에 분류 평가 지표의 대부분이 들어 있다고 보시면 됩니다.

주의 해야할것은 혼동행렬의 "행"에 해당하는것이 실제값, "열"에 해당하는것이 예측값입니다. 구글에 confusion matrix를 검색하면 행열이 바뀐 경우도 많이 있어 혼동을 피하기 위해서 본인의 Rule대로 Confusion matrix를 생각하는것을 추천드립니다.

 

각 칸의 의미

 

True Positive(TP) : 실제 True -> 예측 True (정답)         "Positive(양성을 예측해서) True(맞췄다)"

False Positive(FP) : 실제 False -> 예측 True (오답)        "Positive(양성을 예측해서) False(틀렸다)"

False Negative(FN) : 실제 True -> 예측 False (오답)      "Negative(음성을 예측해서) False(틀렸다)"

True Negative(TN) : 실제 False -> 예측 False (정답)      "Negative(음성을 예측해서) True(맞췄다)" 

 

저는 이 혼동행렬이 봐도봐도 헷갈려서 위와 같은 방식으로 한글로 바꿔서 이해했습니다.

 

Accuracy(정확도)

 

Accuray는 전체중에 정답을 맞춘 비율입니다. 흔히 많이 쓰이는 평가지표이며 1에 가까울 수록 좋습니다. 그런데 만능일것같은 Accuracy에도 한계점이 있습니다.

95%의 정확도를 가지는 분류기는 좋은 분류기라고 할 수 있을까요?

예를들어 남성이 95명, 여성이 5명 있다고 가정합시다. 이때, 분류기가 100명 모두 남성이야! 라고 결과를 내놓았다면 0.95의 정확도를 가지게 됩니다. 하지만 절대 좋은 분류기라고 할 수 없습니다. 이러한 현상을 Accruacy Paradox라고 합니다.

 

Precision(정밀도)와 Recall(재현율)

 

정밀도란 모델이 True라고 예측한 것중 실제 True의 비율입니다. 

재현율은 실제 True인것 중에서 모델이 Ture라고 예측한 비율입니다. Sensitivity(민감도) 라고도 합니다.

두 지표모두 1에가까울 수록 좋습니다.

 

F1 score

 

Precision과 Recall의 조화평균으로 만들어진 F1-Score입니다. 즉, F1 Score가 좋아야 성능이 좋습니다. 두 지표를 모두 균형있게 반영하기 위해 조화평균으로 만들어졌습니다.

 

AUC - ROC Curve (Area Under the Curve - Receiver Operating Characteristic)

 

흔히 AUROC또는 AUC등으로 줄여 부르기도 하는 AUC-ROC Curve입니다.

y축을 TPR = Recall(Sensitivity) x축을 FPR(1 - Specificity)로 하는 그래프이며, 아래 이미지를 보면 이해하기 쉽습니다. Decision boundary(흔히 머신러닝 할때 threshold)에 따라 AUC를 그리고 구할 수 있습니다.

출처 : https://paulvanderlaken.com/2019/08/16/roc-auc-precision-and-recall-visually-explained/

 

출처 : https://paulvanderlaken.com/2019/08/16/roc-auc-precision-and-recall-visually-explained/

 

출처 : https://paulvanderlaken.com/2019/08/16/roc-auc-precision-and-recall-visually-explained/

위 이미지들은 한 블로그에서 찾았는데, AUROC를 이해하는데 큰 도움이 됩니다!

imbalanced data에 대해서 AUC는 강건한 반면, recall과 preicision은 굉장히 취약합니다.

'머신러닝과 딥러닝 > 머신러닝' 카테고리의 다른 글

평가 지표 #1-Regression metric  (0) 2021.02.22
XGBoost, LightGBM, CatBoost 정리 및 비교  (0) 2021.02.18
부스팅(Boosting)  (0) 2021.02.15
RandomForest-랜덤포레스트  (0) 2021.02.15
Decision Tree와 CART  (0) 2021.02.15