코딜기
[Python/ML] 모델 평가(Model Evaluation) - F score(F1 score/Fβ score) 본문
ML & DL/Model Evaluation
[Python/ML] 모델 평가(Model Evaluation) - F score(F1 score/Fβ score)
코딜기 2022. 12. 21. 16:43반응형
F score란 무엇일까요?
- F score는 정밀도(precision)와 재현율(recall)의 조화평균으로 계산되는 지표입니다.
- 가장 많이 쓰이는 지표로는 β = 1인 F1-score가 있습니다.
- 정밀도(precision)와 재현율(recall), TP, FP, FN에 대한 정보는 여기에서 확인 가능합니다.
Fβ - score
- Fβ-score는 정밀도와 재현율의 조화평균 식에서 계수 β에 따라 재현율에 가중치를 주어 조정한 지표입니다.
Python
from sklearn.metrics import fbeta_score
# 데이터 스플릿으로 y_valid와 모델 예측으로 y_pred를 구한 후 실행
# 모델 검정이 없다면 y_true값으로 y_valid 대체
fbeta = fbeta_score(y_valid, y_pred, average = 'macro', beta = 2)
print(fbeta)
대표적인 파라미터
- average
- binary : pos_label로 지정된 클래스에 대한 결과만 계산 (이진분류일 때만 사용 가능하고, average의 default값)
- macro : 단순 평균 (클래스의 불균형을 고려하지 않음)
- weighted : 각 클래스에 속하는 표본의 개수로 가중평균 (클래스의 불균형을 고려)
- micro : TP, FN, FP의 수를 각각 카운트하여 전체적으로 메트릭 계산
- samples : 각 인스턴스에 대한 메트릭을 계산하고 평균을 계산
- beta : 재현율(recall)에 주어지는 가중치
F1 - score
- β = 1인 score입니다.
- F1-score는 분자에 TP값만 포함되는 것에서 알 수 있듯이 양성과 음성을 대칭으로 취급하지 않습니다.
- 따라서 실제값과 예측값의 양성과 음성을 함께 바꾸면 F1-score나 그 행동이 바뀝니다.
Python
from sklearn.metrics import f1_score
# 데이터 스플릿으로 y_valid와 모델 예측으로 y_pred를 구한 후 실행
# 모델 검정이 없다면 y_true값으로 y_valid 대체
f1 = f1_score(y_valid, y_pred)
print(f1)
도메인에 따라 적절한 평가 지표를 선택해서 확인해야 합니다.
반응형
'ML & DL > Model Evaluation' 카테고리의 다른 글
Comments