Python에서 f1 점수를 계산하는 방법(예 포함)
기계 학습에서 분류 모델을 사용할 때 모델 품질을 평가하는 데 사용하는 일반적인 측정항목은 F1 점수 입니다.
이 측정항목은 다음과 같이 계산됩니다.
F1 점수 = 2 * (정밀도 * 재현율) / (정밀도 + 재현율)
금:
- 정확도 : 전체 긍정적 예측에 비해 긍정적 예측을 수정합니다.
- 알림 : 전체 실제 긍정에 대한 긍정적 예측 수정
예를 들어, 로지스틱 회귀 모델을 사용하여 400명의 대학 농구 선수가 NBA에 선발될지 여부를 예측한다고 가정해 보겠습니다.
다음 혼동 행렬은 모델의 예측을 요약합니다.
모델의 F1 점수를 계산하는 방법은 다음과 같습니다.
정확도 = 참양성 / (참양성 + 거짓양성) = 120/ (120+70) = 0.63157
재현율 = 참양성 / (참양성 + 거짓음성) = 120 / (120+40) = 0.75
F1 점수 = 2 * (.63157 * .75) / (.63157 + .75) = . 6857
다음 예에서는 Python에서 이 정확한 모델에 대한 F1 점수를 계산하는 방법을 보여줍니다.
예: Python에서 F1 점수 계산
다음 코드는 Python에서 sklearn 패키지의 f1_score() 함수를 사용하여 주어진 예측 값 및 실제 값 배열에 대한 F1 점수를 계산하는 방법을 보여줍니다.
import numpy as np from sklearn. metrics import f1_score #define array of actual classes actual = np. repeat ([1, 0], repeats=[160, 240]) #define array of predicted classes pred = np. repeat ([1, 0, 1, 0], repeats=[120, 40, 70, 170]) #calculate F1 score f1_score(actual, pred) 0.6857142857142857
F1 점수는 0.6857 입니다. 이는 이전에 수동으로 계산한 값과 일치합니다.
참고 : 여기에서 f1_score() 함수에 대한 전체 문서를 찾을 수 있습니다.
F1 점수 사용 시 참고 사항
F1 점수를 사용하여 여러 모델을 비교하는 경우 F1 점수가 가장 높은 모델은 관측치를 클래스로 가장 잘 분류할 수 있는 모델을 나타냅니다.
예를 들어, 다른 로지스틱 회귀 모델을 데이터에 적용하고 해당 모델의 F1 점수가 0.75인 경우 해당 모델의 F1 점수가 더 높기 때문에 더 나은 것으로 간주됩니다.
추가 리소스
Python에서 로지스틱 회귀를 수행하는 방법
Python에서 혼동 행렬을 만드는 방법
Python에서 균형 잡힌 정밀도를 계산하는 방법
F1 점수와 정확도: 어느 것을 사용해야 합니까?