ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [ML] 주요 Metric : Confusion matrix, Accuracy, Precision, Recall
    Data miner/Information Retrieval 2021. 12. 15. 17:42
    728x90

     

    - Confusion Matrix (혼동 행렬) : 샘플 데이터의 실제값과 모델의 예측값을 한 눈에 볼 수 있는 표이다. 많은 매트릭이 Confusion matrix의 기반으로 구해진다고 보면 된다. 

     

    이진 분류를 기반으로 생각해 보았을 때 실제 클래스 - 예측 클래스 구분은 다음의 네 가지 경우로 나뉠 수 있다. 앞 부분은 모델이 예측한 클래스가 맞는지 틀리는지 여부를 나타내며 (T: True 옳게 분류한 경우, F: False 틀리게 분류한 경우) 뒷 부분은 모델이 예측한 클래스의 레이블을 뜻한다(P: positive 모델이 중점으로 맞추고자 하는 클래스, N: negative 그 외의 클래스)고 생각하면 편리하다. 

     

    •  TP (True Positive) :  모델이 Positive class에 해당하는 경우를 옳게 분류(predicted positive)했을 경우 
    •  TN (True Negative) : 모델이 negative class라고 해당하는 경우를 옳게 분류(predicted negative)했을 경우
    •  FP (False Positive) : 모델이 Positive class에 해당하는 경우를 틀리게 분류(predicted positive)했을 경우
    •  FN (False Negative) : 모델이 Negative class에 해당하는 경우를 틀리게 분류(predicted negative)했을 경우 

    위의 Confusion matrix의 경우처럼 다중 클래스의 문제일 경우, 각각 클래스 별 분류 모델을 만든다고 가정하고 생각하면 된다. 즉, 고양이의 precision/recall 등을 구할 때 고양이 클래스인 경우를 positive, 아닌 경우(닭, 물고기)를 모두 negative로 보는 것이다. 

     

    - Accuracy (정확도) : 가장 쉽게 떠올릴 수 있는 메트릭

     모델이 분류한 샘플 중에서 제대로 분류한 샘플의 수를  전체 테스트 샘플 수의 비율에 해당한다.

    - Precision (정밀도) : 모델이 분류한 predicted positive 샘플 중에서 실제 positive로 분류한 비율

    FP(False Positive)를 통제하고 싶을 때 Precision 지표의 학습이 높아지도록 학습

    모델이 positive로 분류한 것 중에서 실제 positive인 것들의 비율은 어느 정도인가?

    Precision를 Recall보다 더 중요하게 다루는 경우의 문제 :

             중요한 메일을 스팸으로 분류하지 않도록 하는 스팸 메일 분류기, 이 경우 스팸이 아닌데 스팸메일함으로 들어간 경우(False positive)의 숫자를 줄이고자 한다.

     

    - Recall (재현율) : 실제 Positive 샘플 중에서 모델이 예측한 predicted positive 의 비율

    FN(False Negative)를 통제하고 싶을 때 사용한다.

    Recall을 Precision보다 더 중요하게 다루는 경우의 문제:

             치명적인 병을 진단하고자 하는 경우(병에 걸렸을 경우 positive class로 봄), 병에 걸렸는 데 걸리지 않았다고 판단하는 경우(False Negative)의 경우를 줄이도록 학습한다. 

     

    Precision과 Recall의 경우 하나의 지표가 높아지면 다른 지표가 낮아지는 경향이 있다. 따라서, 문제상황에 따라서 False positive의 경우를 더 중요하게 볼 것인지,  False Nagative의 경우를 높게 볼 것인지에 따라서 다르게 선택할 수 있다. 

     

    - F1 score (정밀도와 재현율의 조화평균) : 

     

    한편, 3개 이상의 클래스를 분류하는 다중클래스 분류의 경우, 각각의 클래스의 F1-score 2가지의 방법으로 모델의 성능에 반영할 수 있다. 대부분의 실생활의 데이터는 불균형 문제를 포함하고 있다는 것을 고려하여, 각각의 클래스의 중요도를 균일하게 반영하는 macro-F1 score 방법이 있다. Macro F1-score의 경우 각 클래스의 F1-score 값을 평균낸 것을 의미한다. 한편으로, Micro F1-score의 경우 전체 샘플에 대해서 micro-recall, micro-precision을 구한 후에 이를 활용하여 최종적으로 micro-f1 score을 낸다. 전체 샘플에 대해서 recall, precision을 구하는 과정에서 분모 및 분자가 동일하므로 아래와 같이 각각 매트릭의 점수가 모두 다 동일한 결과치가 나온다. 이 경우에는 클래스의 샘플 수에 상관이 없이 대다수의 샘플을 옳게 분류할 수록 micro F1 score가 결과적으로 높게 나온다. 

     

    한편, 문제 상황에 따라서 FP와 FN이 초래하는 비용이 다를 수 있다. 예컨대 건강한 사람을 암이 걸린 사람으로 분류하면서 생기는 문제와 암이 걸린 사람을 건강한 사람으로 분류하면서 생기는 문제의 경중이 다를 수 있다는 점이다. 따라서 두 가지 스코어를 동일한 weight를 줘서 구하는 standard-F1 score보다는 임의로 두 스코어의 weight를 조정하여 문제 상황에 최적인 F1 score를 지정해야 한다. 

     

     

Designed by Tistory.