매번 헷갈리는 개념들이다.
알고리즘의 성능 측정을 위한 지표들을 정리했다
|
정답 | ||
Positive |
Negative | ||
실험결과 |
Positive |
True positive |
False positive |
Negative |
False negative |
True negative |
True (올바르게 판단하다) Positive (옳은 것을)
True (올바르게 판단하다) Negative (틀린 것을)
False (잘못 판단하다) Positive (옳다고) -> 오탐
False (잘못 판단하다) Negative (틀리다고) -> 미탐
Precision (정밀도) = TP / (TP + FP)
Recall (재현율) = TP / (TP + FN)
Accuracy (정확도) = (TP + TN) / (TP + TN + FP + FN)
Accuracy는 ground truth에 따라 제대로 성능 평가를 할 수 없는 경우가 있다.
예로 "7월 9일까지의 차트를 분석해서 2,080여개의 코스피 코스닥 종목 중 10일에 상한가 간 종목 찾기" 에 대한 알고리즘을 제작했다고 하자. 실제 10일에는 총 2 종목이 상한가를 갔으므로 어떤 알고리즘이든간에 실험 결과 중 Negative (상한가 안갈 종목으로 판단)가 많을 수 밖에 없다. 이렇게 ground truth가 bias된 상태에서는 Accuracy로는 알고리즘의 성능을 올바르게 측정할 수 없다.
이와 같은 이유로 Precision과 Recall의 조화평균인 F1 (=F score)이 대안으로 제시되었다.
F Score = 2 x (Precision x Recall) / (Precision + Recall)