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 중국어 웹사이트의 기타 관련 기사를 참조하세요!