소소한 블로그

[4주차 - Day15] F1 Score 본문

부스트캠프 AI Tech

[4주차 - Day15] F1 Score

happy_ai 2021. 8. 23. 16:06

이번 경연의 평가는 F1 Score 통해 진행됩니다.

F1 Score의 개념이 생각나지 않아 구글링을 해봤습니다. ㅎㅎ

아래는 F1 Score에 대해 간략히 정리한 내용입니다.


시작하기에 앞서 한가지 질문을 해보겠습니다.

여러 feature가 주어지고,

8월 특정 날에 최고기온이 30도가 넘는지 예측하는 모델을 만든다고 가정해봅시다.

만약 해당 모델이 어느 상황에서나 단순하게 항상 True를 출력한다고 해도

정확도( 정답인 경우 / 테스트 개수 )는 아주 높을 것 입니다.

 

따라서 정확도( 정답인 경우 / 테스트 개수 )만을 모델의 성능 측정에 이용한다면

발생하는 문제점은 많을텐데요,

이러한 경우를 보안할 수 있는 개념이 F1 score입니다.

 

F1 Score을 정리하기에 앞서 알아야할 2가지 개념이 있는데요.

바로 Precision Recall 입니다.

따라서 Precision과 Recall을 설명 후 F1 Score에 대해 설명하겠습니다.


1. Precision

Precision, Recall을 설명하기 위해서 아래 도표가 사용됩니다.

  실제 정답
Positive Negative
예측
결과
Positive True Positive(TP) False Positive(FP)
Negative False Negative(FN) True Negative(TN)

Precision은 'Postive'라고 예측한 것 중에, 실제로 'Postive'인 비율을 의미합니다.

$\frac{TP}{TP + FP}$


2. Recall

Recall은 실제로 'Positive'인 것 중에, 모델이 'Postive'로 예측한 비율을 의미합니다.

$\frac{TP}{TP + FN}$


3. F1 Score

F1 Score은 Precision과 Recall의 조화평균입니다.

$\frac{2 * Precision * Recall}{Precision + Recall}$

조화평균이기 때문에 어느 하나가 0에 가깝다고 하면

산술평균보다 해당 문제점(Precision과 Recall은 값이 낮을 수록, 모델이 잘못된 추측한다는 것을 뜻합니다.)

을 score에 잘 반영해주게 됩니다.

 

 

데이터(training set, test set)가 한쪽으로 치중되어 있을 때,

단순 Accuracy를 쓰는 것보다는

F1 Score을 쓰는게 더욱 효과적이겠네요.