>백엔드 개발 >파이썬 튜토리얼 >F1 점수를 계산할 때 'UndefineMetricWarning'이 한 번만 나타나는 이유는 무엇입니까?

F1 점수를 계산할 때 'UndefineMetricWarning'이 한 번만 나타나는 이유는 무엇입니까?

Linda Hamilton
Linda Hamilton원래의
2024-11-15 19:41:02399검색

Why Does `UndefinedMetricWarning` Appear Only Once When Calculating F1 Score?

UndefineMetricWarning: 예측된 샘플이 없는 라벨에 대해 F-score 정의되지 않음

scikit-learn에서 f1_score 측정항목은 F1 점수를 계산합니다. 분류 모델의 정확도를 측정합니다. 그러나 계산에는 대상 변수(y_test)의 각 레이블에 대한 예측 샘플이 있어야 합니다. 예측 샘플(y_pred)에서 특정 라벨이 누락된 경우 해당 라벨의 F1 점수가 정의되지 않고 오류 메시지가 표시됩니다.

UndefinedMetricWarning: F-score is ill-defined and being set to 0.0 in labels with no predicted samples.

오류가 한 번만 발생하는 이유

오류 메시지는 정의되지 않은 측정항목을 암시하지만 실제로는 기본적으로 한 번만 나타나는 경고입니다. 이는 Python이 경고를 오류와 다르게 처리하기 때문입니다. 기본적으로 대부분의 환경에서는 기본 조건이 지속되더라도 특정 경고를 한 번만 표시합니다.

UndefineMetricWarning 해결

경고를 해결하려면 다음 사항을 확인하는 것이 중요합니다. y_test의 모든 레이블은 y_pred에도 있습니다. 이는 레이블 세트를 비교하여 확인할 수 있습니다.

set(y_test) - set(y_pred)

결과가 빈 세트인 경우 모든 레이블이 예측되었으며 정의되지 않은 F1 점수는 없습니다.

반복적인 경고 방지

경고가 발생할 때마다 보는 것이 중요하다면, warnings.filterwarnings() 함수를 사용하여 경고 처리 동작을 수정할 수 있습니다.

import warnings
warnings.filterwarnings('always')

예측 샘플이 없는 레이블 무시

또는 특정 레이블을 제외할 수 있습니다. 관심 라벨을 지정하여 F1 점수 계산:

metrics.f1_score(y_test, y_pred, average='weighted', labels=np.unique(y_pred))

이것은 예측된 샘플에서 누락된 레이블이 점수 계산에 고려되지 않도록 하여 경고를 제거합니다.

위 내용은 F1 점수를 계산할 때 'UndefineMetricWarning'이 한 번만 나타나는 이유는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.