본문 바로가기
Python/Machine Learning

[ML] 머신러닝 평가지표 - 분류 모델 평가지표(오차행렬)

by skwkiix 2023. 9. 15.
728x90

머신러닝 모델 평가 지표 정리  1 


분류(Classification) 모델 평가 지표

  • 정확도 (Accuracy): 전체 예측 중 올바르게 예측한 비율(데이터가 불균형할 경우에는 부적절할 수 있음)
  • 정밀도 (Precision): Positive로 예측한 샘플 중 실제 Positive인 비율을 나타내며 > FP을 최소화
  • 재현율 (Recall):실제 Positive인 샘플 중 모델이 올바르게 Positive로 예측한 비율 > FN 최소화
  • F1 Score: 정밀도와 재현율의 조화 평균(정밀도와 재현율 모두 고려하는 지표)
  • ROC 곡선 (ROC Curve) , AUC (Area Under the ROC Curve):이 모델의 분류 성능을 시각화하고 측정하는 데 사용

1. 이진 분류 평가지표- 오차행렬 개념

오차 행렬(confusion matrix)은 학습된 분류 모델이 예측을 수행하면서 실제 값과 예측 값의 차이를 분류한 것이다.

아래와 같은 평가지표를 모델에 따라서 다르게 사용한다.


 

1. 정확도 (Accuracy): 전체 예측(TN+FP+FN+TP)  중 올바르게 예측(True - ) 한 비율

 

     TN + TP /  전체

 

주의 >> 데이터가 불균형할 경우에는 부적절할 수 있음)

2. 정밀도 (Precision): Positive로 예측한 샘플( - Positive) 중 실제 Positive인 비율(TP)을 나타냄 > FP을 최소화

    

      TP  /  TP + FP

 

3. 재현율 (Recall):실제 Positive인 샘플(FN , TP) 중 모델이 올바르게 Positive(TP)로 예측한 비율 > FN 최소화

 

      TP  /  FN  + TP

 

4. F1 Score: 정밀도(Precision)와 재현율(Recall)조화 평균(정밀도와 재현율 모두 고려하는 지표)


2. 중요도 판단

각 평가지표 간의 중요도 판단을 설명하기 위해 코로나의 양성/음성을 예측하는 분류 모델을 가정해 보겠다.

 

1. 일반적으로 데이터셋이 불균형한 경우가 많으므로, 정확도보다 정밀도(Precision)재현율(Recall)을 주요한 지표로 고려한다.

 

예를 들어, 코로나 양성/음성 판정을 예측하는 분류 모델을 구현했다고 가정해 보자.

코로나는 바이러스 특성상, 위의 4가지 분류 가장 위험한 경우는 양성을 음성으로 예측한 경우 (FN)이다.

따라서, 코로나 예측의 경우에는 FN 최소화에 중점을 둔 재현율 (Recall)을 가장 주요한 평가지표로 고려해야 한다.

 

2. 정밀도(Precision)가 더 중요한 지표로 고려되어야 하는 상황은 언제일까?

같은 예시로 설명하면, 음성을 양성으로 예측하게 되면, 중요한 위험이 따르는 경우이다.

 

결국은 재현율은 FN(False Negative), 정밀도는(False Positive)를 최소화하는 데에 초점을 맞춘 지표이다.

따라서 두 가지 지표를 동시에 높은 수준으로 개선하기는 어렵다. Trade -off 관계에 있다.


*사이킷런에서는 재현율과 정밀도를 API로 제공한다.

from sklearn.metrics import accuracy_score, precision_score, recall_score, confusion_matrix