얼마 전 나갔던 경진대회에서는 평가 메트릭으로 macro f1-score를 사용하였습니다.
macro f1-score는 각각의 클래스에 대해 f1-score를 계산한 다음 각각의 값의 평균으로 계산합니다.
여기서 F1-score는 어떻게 계산할 수 있을까요?
F1-score = 2 * (precision * recall) / (precision + recall)
Precision 이란 정밀도라고 해석되며 true라고 예측한 것 중 실제 true 인 것의 비율로 계산합니다.
Precision = tp / tn + tp
Recall 이란 재현율이라고 해석되며 실제 true 인 것 중 true로 예측한 것의 비율로 계산합니다.
Recall = tp / fn + tp
scikit learn 라이브러리에서 f1-score 모듈을 제공합니다.
코드로 확인해 봅시다.
from sklearn.metrics import f1_score
y_true = [0, 1, 2, 0, 1, 2]
y_pred = [0, 2, 1, 0, 0, 1]
f1score_None = f1_score(y_true, y_pred, average=None) # array([0.8, 0. ,0. ])
f1score_macro = f1_score(y_true, y_pred, average='macro') # 0.26...(=0.8 / 3)
'AI&ML > 학습 정리' 카테고리의 다른 글
[Paper-review]RAGAS: Automated Evaluation of Retrieval Augmented Generation (0) | 2024.07.02 |
---|---|
langchain quickstart 따라하기 (0) | 2024.05.03 |
[Paper-review]Retrieval-Augmented Generation for Knowledge-Intensive NLP Tasks (0) | 2024.04.10 |
핸즈온 머신러닝 리뷰 (1) | 2024.01.13 |
f1-score에 대해서 알아보자(2) (0) | 2023.12.07 |