↓폴밍끼 유튜브 채널 자세히보기

AI/Machine Learning

F1 score가 산술평균이 아닌 조화평균을 사용하는 이유

폴밍끼 2023. 9. 14. 11:07
728x90
  • 데이터 불균형이 심한 경우 Accuray를 평가지표로 삼지 않는다

Accuracy = (TP+TN) / (TP+FP+FN+TN)

confusion matrix (출처 : https://velog.io/@zajangbumbuck/Confusion-Matrix)

  • 객체인식 데이터의 경우 데이터 불균형이 심한 편이다

MS COCO, PASCAL 데이터의 불균형을 보여주는 그래프 (출처 : Zhang, Rui & Li, Guangyun & Wunderlich, Thomas & Wang, Li. (2021). A survey on deep learning-based precise boundary recovery of semantic segmentation for images and point clouds. International Journal of Applied Earth Observation and Geoinformation. 102. 102411. 10.1016/j.jag.2021.102411. )

  • Precision, Recall(Sensitivity), F1 score의 대안이 있다.

Precision = TP/(TP+FP)

Recall(Sensitivity) = TP/(TP+FN)

F1 score = 2(Precision×Recall)/(Precision+Recall)

  • Precision과 Recall(Sensitivity)은 (항상 그런 것은 아니지만) trade-off 관계가 있기 때문에 F1 score를 사용한다
  • F1 score를 계산 시 Precision과 Recall(Sensitivity)의 산술평균이 아닌 조화평균을 사용한다

출처 : 해시넷 - 산술평균 http://wiki.hash.kr/index.php/%EC%82%B0%EC%88%A0%ED%8F%89%EA%B7%A0
출처 : 유튜브 - 민은기 선생님의 수학자료실 https://youtu.be/9yGUOb2LndY?si=dzyJGqDPB9JOfh61

  • 조화평균은 항상 산술평균보다 작거나 같다.  Precision과 Recall(Sensitivity)이 각각 50일 때와, Precision은 100, Recall(Sensitivity)은 0일 때 모두 산술평균은 50이다. 그러나 후자의 경우는 전자인 경우보다 모델의 성능이 더 좋지 않은 경우인데 산술평균은 이를 반영하지 못하는 것이다. 따라서 이때 후자의 경우에 조화평균을 사용한다면 F1 score는 0으로 계산된다. 따라서 조화평균이 산술평균보다 모델의 성능을 더 잘 표현할 수 있다.