警告:
UndefinedMetricWarning: Precision and F-score are ill-defined and being set to 0.0 in labels with no predicted samples. Use zero_division
parameter to control this behavior.
_warn_prf(average, modifier, msg_start, len(result))
原因:
预测的标签仅有其中一种(仅有0或仅有1),就会报出该警告。
解决:
可以通过设置参数zero_division=1忽略此警告。
from sklearn.metrics import precision_score, recall_score, f1_score
# 设置 zero_division 参数为 1
precision = precision_score(y_true, y_pred, zero_division=1)
recall = recall_score(y_true, y_pred, zero_division=1)
f1 = f1_score(y_true, y_pred, zero_division=1)
report = classification_report(y_true, y_pred, zero_division=1)