> 백엔드 개발 > 파이썬 튜토리얼 > 내 F-점수가 Python에서 'UndefineMetricWarning'을 발생시키는 이유는 무엇이며 어떻게 해결합니까?

내 F-점수가 Python에서 'UndefineMetricWarning'을 발생시키는 이유는 무엇이며 어떻게 해결합니까?

Patricia Arquette
풀어 주다: 2024-11-16 14:37:03
원래의
619명이 탐색했습니다.

Why Does My F-Score Throw a

F-점수 경고: 정의되지 않은 측정항목 및 누락된 예측 샘플

분류 작업의 맥락에서 F-점수 측정항목이 일반적으로 사용됩니다. 모델 성능을 평가합니다. 그러나 "UndefineMetricWarning: F-점수는 잘못 정의되었습니다." 오류가 발생하면 예측된 샘플이 없기 때문에 특정 레이블에 대해 F-점수를 계산할 수 없음을 나타냅니다.

이 문제는 레이블이 다음과 같은 경우에 발생합니다. 실제 레이블 세트(y_test)에 존재하는 것은 예측된 레이블 세트(y_pred)에 나타나지 않습니다. 결과적으로 이러한 레이블에 대한 F-점수를 계산하면 정의되지 않은 값이 생성됩니다. 이 상황을 처리하기 위해 scikit-learn은 이러한 라벨의 F-점수에 0.0 값을 할당합니다.

이 시나리오를 관찰하는 한 가지 방법은 예제를 이용하는 것입니다. '2' 라벨이 y_test에는 있지만 y_pred에는 없는 상황을 생각해 보세요.

>>> set(y_test) - set(y_pred)
{2}
로그인 후 복사

'2' 라벨에 대한 예측 샘플이 없으므로 이 라벨의 F 점수는 0.0으로 간주됩니다. 계산에는 점수 0이 포함되므로 scikit-learn은 정의되지 않은 측정항목에 대해 경고하라는 경고를 표시합니다.

이 경고는 처음 발생할 때만 발생합니다. 이 동작은 특정 경고가 한 번만 표시되도록 보장하는 Python의 기본 경고 설정 때문입니다.

이 경고를 표시하지 않으려면 warnings.filterwarnings('ignore')를 사용하여 비활성화할 수 있습니다.

import warnings
warnings.filterwarnings('ignore')
로그인 후 복사

또는 예측되지 않은 라벨을 제외하고 관심 라벨을 명시적으로 지정할 수도 있습니다. 샘플:

>>> metrics.f1_score(y_test, y_pred, average='weighted', labels=np.unique(y_pred))
0.91076923076923078
로그인 후 복사

실제로 예측된 ​​레이블을 지정하면 경고를 피할 수 있습니다.

위 내용은 내 F-점수가 Python에서 'UndefineMetricWarning'을 발생시키는 이유는 무엇이며 어떻게 해결합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
저자별 최신 기사
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿