[python] F1 스코어(F1 Score)

F1 스코어는 분류 모델의 성능을 평가하는 지표 중 하나입니다.

F1 스코어는 정밀도(precision)와 재현율(recall)의 조화 평균입니다. 정밀도는 모델이 참이라고 분류한 것 중에서 실제로 참인 비율을 나타내며, 재현율은 실제로 참인 것 중에서 모델이 참이라고 분류한 비율을 나타냅니다.

F1 스코어는 불균형한 데이터셋에서 모델의 성능을 잘 반영합니다. 예를 들어, 양성 클래스의 데이터가 매우 적고 음성 클래스의 데이터가 매우 많은 경우, 모델이 모든 데이터를 음성으로 분류하더라도 재현율이 높아질 수 있습니다. 하지만, 이런 경우 정밀도는 매우 낮아지게 되는데, F1 스코어는 이러한 균형을 잡아주는 역할을 합니다.

F1 스코어는 다음과 같이 계산됩니다.

precision = TP / (TP + FP)
recall = TP / (TP + FN)
F1_score = 2 * (precision * recall) / (precision + recall)]

TP는 참인 것을 참으로 정확하게 분류한 개수, FP는 거짓인 것을 참으로 잘못 분류한 개수, FN은 참인 것을 거짓으로 잘못 분류한 개수입니다.

F1 스코어는 0과 1 사이의 값을 가지며, 값이 클수록 모델의 성능이 좋다고 볼 수 있습니다. 정밀도와 재현율이 모두 높을 때 F1 스코어는 가장 높은 값을 가지게 됩니다.

참고문헌