【问题标题】:How to silence all sklearn warning如何使所有 sklearn 警告静音
【发布时间】:2019-05-26 20:07:08
【问题描述】:

我在 sklearn 中使用 F1_score 指标。对于某些训练数据集,y=1(罕见)集的总数为零,F1_score为零,这是正常的。但是 sklearn 给出了以下警告:

“UndefinedMetricWarning:F-score 定义不明确,由于没有预测样本而被设置为 0.0”。

有谁知道如何消除此警告?总的来说,我们可以在 sklearn 中消除各种警告吗?

【问题讨论】:

标签: python scikit-learn


【解决方案1】:

您可以像这样在 Python 中借助 warnings 模块轻松 ignore 警告。

import warnings
warnings.filterwarnings('ignore') 

例如,

from sklearn.metrics import f1_score

yhat = [0] * 100
y = [0] * 90 + [1] * 10

print(f1_score(y, yhat))

这将引发警告。为了避免这种使用,

from sklearn.metrics import f1_score

import warnings
warnings.filterwarnings('ignore') 

yhat = [0] * 100
y = [0] * 90 + [1] * 10

print(f1_score(y, yhat))

这不会显示警告。

【讨论】:

  • 感谢您的信息。实际上,我的代码开头有“warnings.filterwarnings('ignore')”行,但仍然会弹出警告。我猜这个“忽略”行的原因只控制python模块的警告而不是sklearn模块的警告。在您的示例中,您可能需要在 f1_score 函数中交换 y 和 yhat 才能看到效果,因为第一个参数是 ytrue,第二个是 ypred
  • @saunter,两种方法我都试过了。我的机器没有收到任何警告。如果没有warnings.filterwarnings('ignore') 我会收到警告,但使用该代码我不会收到任何警告。
  • 很高兴听到它有帮助。
  • 我面临与@saunter 提到的相同的问题
猜你喜欢
  • 2022-12-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-06-11
  • 2012-03-04
  • 1970-01-01
  • 2015-02-20
  • 1970-01-01
相关资源
最近更新 更多