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