首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在double_scalars和UndefinedMetricWarning中遇到无效值:精度定义错误

在double_scalars和UndefinedMetricWarning中遇到无效值:精度定义错误
EN

Stack Overflow用户
提问于 2021-09-11 16:07:38
回答 1查看 56关注 0票数 0

运行此代码后

代码语言:javascript
运行
复制
matthews_corrcoef(test_labels, y_test_pred)*100

我遇到了这个错误

代码语言:javascript
运行
复制
 /usr/local/lib/python3.7/dist-packages/sklearn/metrics/_classification.py:900: RuntimeWarning: invalid value encountered in double_scalars
  mcc = cov_ytyp / np.sqrt(cov_ytyt * cov_ypyp)
0.0

为了获得精确分数

代码语言:javascript
运行
复制
from sklearn.metrics import precision_score
sklearn.metrics.precision_score(test_labels, y_test_pred, pos_label= 1)*100

得到另一个错误

代码语言:javascript
运行
复制
 usr/local/lib/python3.7/dist-packages/sklearn/metrics/_classification.py:1272: UndefinedMetricWarning: Precision is ill-defined and being set to 0.0 due to no predicted samples. Use `zero_division` parameter to control this behavior.
  _warn_prf(average, modifier, msg_start, len(result))
0.0

为了解决这个问题,我尝试用下面的代码从训练和测试数据中删除NAN和无穷大的值

代码语言:javascript
运行
复制
te_fin = np.nan_to_num(te_fin)

但是,问题仍然存在,模型运行时非常慢。

EN

Stack Overflow用户

回答已采纳

发布于 2021-09-12 16:02:18

第二条消息是由sklearn.metrics.precision_score函数引发的警告。要消除该警告,必须通过'zero_divison‘参数显式指定所需的行为。请注意,精度是使用公式精度= Tp / (Tp + Fp)计算的。该警告告诉您正在执行被零除,这是一个无效的操作。这意味着您的预测值不包含正标签,所有标签都被预测为负标签。

出于同样的原因,第一个警告被抛出,但是该函数没有提供一个参数来指定在除法为零的情况下该如何处理。您可能需要在调用函数之前自己检查这些值,以避免出现警告。

票数 1
EN
查看全部 1 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/69144659

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档