본문 바로가기
ML/Classification

[ML][Classification] 분류 성능 평가 방법(Accuracy, Precision, Recall, F1-score, ROC, AUC)

by 어떻게든 되겠지~ 2024. 6. 5.

Confusion matrix(오차 행렬)

Classification 성능 측정을 위해 예측값과 실제값을 비교한 표

 

 

TP : 실제값이 Positive(1)이고 모델의 예측값도 Positive(1)

FP : 실제값이 Positive(1)이고 모델의 예측값은 Negative(0)

FN : 실제값이 Negative(0)이고 모델의 예측값은 Positive(1)

TN : 실제값이 Negative(0)이고 모델의 예측값도 Negative(0)

 

Accuracy(정확도)

데이터 샘플 중 예측에 성공한 샘플의 비율($\frac{TP + TN}{TP+FN+FP+TN}$)

Precision(정밀도)

모델이 Positive로 예측한 것 중 실제값 도한 Positive인 비율($\frac{TP}{TP+FP}$)

Recall(재현율) 

실제 값이 Positive 인 것 중 모델이 Positive로 예측한 비율 ($\frac{TP}{TP+FN}$)

F1-Score

Precision과 Recall의 조화평균 ( 역수의 산술평균의 역수, $\frac{2 \times Precision \times Recall}{Precision + Recall}$ )

Precision과 Recall 중 더 작은 값에 영향을 많이 받게 하기 위해 조화평균을 사용

 

※ 민감도(Sensitivity) / 특이도(Specificity)

  • 민감도(Sensitivity) : 실제 값이 Positive 인 것 중 모델이 Positive로 예측한 비율, 즉 Recall과 동일한 값이다
  • 특이도(Specificity) : 실제 값이 Negative인 것 중 모델이 Negative 로 예측한 비율

이 둘은 현실적인 관점에서 Trade - Off 관계가 있다

 

아래 그림은 Accuracy, Precision, Recall(Sensitivity), Specificity를 알아보기 쉽게 그린 그림이다


ROC 곡선과 AUC

ROC 곡선(Receiver Operating Characteristic Curve)

2 Class Classification 모형에서 여러 Threshold에서의 민감도(Sensitivity)와 특이도(Specificity)를 나타내는 곡선이다

 

Threshold c : 특정 데이터를 Positive로 분류할지 말지 결정하는 상수

TPR(True Positive Rate)(=Sensitivity) : 실제 값이 Positive 인 것 중 모델이 Positive로 예측한 비율

FPR(False Positive Rate)(=1 - Specificity) : 실제 값이 Negative 인 것 중 모델이 Positive로 잘못 예측한 비율


 

$$ \begin{aligned} if \space c_1 \lt c_2  &==> Sens(c_1) \ge Sens(c_2)\\ &==> 1 - Spec(c_1) \ge 1 - Spec(c_2)\\ \end{aligned} $$

즉, Threshold c를 낮추면 TPR이 커지고 동시에 FPR로 커지는 관계라 할 수 있다


따라서 Threshold를 조정해가며 확인할 필요 있고 이를 나타낸 것이 ROC Curve 이다

Threshold c를 0에서 1까지 증가시키며 TPR, FPR를 구해 ROC Curve를 그리면 된다

 

ROC Curve를 그리고 난 후 Threshold c를 정하는 것은 TPR, FPR의 중요도에 따라 선택하면 된다.


AUC(Area Under the Curve)

ROC Curve 아래의 영역을 의미

AUC가 높다는 것은 Class를 분류하는 모델의 성능이 좋다는 것을 의미하고, 다른 모델끼리 정량적인 비교가 가능하다 

 

반응형