Linux, ML/DL, DevOps, 클라우드

Accuracy, Recall, Precision, F1 score에 대해서 본문

AI(ML, DL)

Accuracy, Recall, Precision, F1 score에 대해서

draidev 2022. 7. 18. 22:24

  분류 ML모델의 성능을 평가하기 위해 Accuracy, Recall, Precision, F1 score를 구하고 이를 기반으로 모델간의 성능을 비교하고 더 나은 지표를 얻기 위해 모델을 개선시켜 나갈 수 있습니다.  

  각각의 지표가 무엇을 의미하는지 알아보겠습니다.

 

 

  우선 텍스트 데이터에 대해서 혐오표현인지 아닌지를 판별하는 모델이 있다고 가정하겠습니다.

만약 혐오표현이면 1, 혐오표현이 아니라면 0으로 라벨링합니다.

출처 : https://ieeexplore.ieee.org/abstract/document/8863366

위 그림의 confusion matrix에서 각각 무엇을 뜻하는지는 아래와 같습니다.

  • True Positive - 모델이 혐오표현이라고 예측하였고 실제로 그런 경우
  • True Negative - 모델이 혐오표현이 아니라고 예측하였고 실제로 그런 경우
  • False Positive - 모델이 혐오표현이라고 예측하였고 실제로는 아닌 경우
  • False Negative - 모델이 혐오표현이 아니라고 예측하였고 실제로는 아닌 경우

이 부분이 처음봤을때 헷갈릴 수 있는데, 뒤에 positive, negative부분이 모델이 예측하는 부분이고 앞에는 예측에 대한 true와 false를 의미합니다.

1. Accuracy(정확도)

Accuracy는 모델이 제대로 예측한 데이터의 수를 전체 데이터의 수로 나눈 값입니다.

말그대로 모델이 예측한 결과가 전체 데이터에 대해서 얼마나 정확한지, 1을 1이라고 예측한것과 0을 0이라고 예측한 값이 얼마나 맞았는지 채점을 한거라고 볼 수 있습니다.

 

2. Recall(재현율)

Recall은 실제로 True인 데이터를 모델이 True라고 인식한 데이터의 수를 의미하며,

 

모델이 항상 Negative로 예측하는 경우 Recall은 0이 됩니다.(TP가 0이기 때문에) 

3. Precision(정밀도)

Precision은 모델이 True로 예측한 데이터 중 실제로 True인 데이터의 수를 의미하며,

 

모델이 항상 Positive로 예측하면 Recall은 항상 1이지만(FN이 0이므로 TP/TP = 1), Precision은 실제 혐오표현의 빈도에 따라 수치가 다르게 나옵니다.

4. F1 Score

F1 score는 Precision과 Recall의 조화평균입니다.

산술평균이 아닌 조화평균으로 계산한 이유 :
Precision과 Recall이 0에 가까울수록 F1 score도 낮은 값을 갖도록 하기 위해서

example)

recall = 1, precision = 0.01 인 모델이 있을 때
1. 산술평균 : (1+0.01) / 2 = 0.505
2. 조화평균 : 2 * (1 * 0.01) / (1 + 0.01) = 0.01

- F1 score는 분류 클래스 간의 데이터 불균형이 심할 때 사용하며, F1 score값이 높으면 성능이 좋다고 할 수 있습니다.

Comments