Scikit learn 错误消息“精度和 F 分数定义不明确,在标签中设置为 0.0”[重复]

2024-03-07

我正在研究二元分类模型,分类器是朴素贝叶斯。我有一个几乎平衡的数据集,但是当我预测时,我收到以下错误消息:

UndefinedMetricWarning: Precision and F-score are ill-defined and being set to 0.0 in labels with no predicted samples.
  'precision', 'predicted', average, warn_for)

我正在使用 gridsearch 和 CV k-fold 10。测试集和预测包含这两个类,所以我不理解该消息。我正在研究 6 个其他模型的相同数据集、训练/测试分割、CV 和随机种子,这些模型工作得非常完美。数据从外部提取到数据帧中,进行随机化并且种子是固定的。然后,朴素贝叶斯分类模型在此代码片段之前的开头对文件进行分类。

X_train, X_test, y_train, y_test, len_train, len_test = \
     train_test_split(data['X'], data['y'], data['len'], test_size=0.4)
pipeline = Pipeline([
    ('classifier', MultinomialNB()) 
])

cv=StratifiedKFold(len_train, n_folds=10)

len_train = len_train.reshape(-1,1)
len_test = len_test.reshape(-1,1)

params = [
  {'classifier__alpha': [0, 0.0001, 0.001, 0.01]}

]

grid = GridSearchCV(
    pipeline,
    param_grid=params,
    refit=True,  
    n_jobs=-1, 
    scoring='accuracy',
    cv=cv, 
)

nb_fit = grid.fit(len_train, y_train)

preds = nb_fit.predict(len_test)

print(confusion_matrix(y_test, preds, labels=['1','0']))
print(classification_report(y_test, preds))

我被Python“强迫”改变了系列的形状,也许这就是罪魁祸首?


警告的含义

正如这里的其他答案所暗示的那样,您会遇到精度F-Score由于其定义而无法计算(精度/召回率等于 0)。在这种情况下,指标的分数值为 0。

测试数据包含所有标签,为什么还会出现这种情况?

嗯,你正在使用K-Fold(特别是在你的情况下k=10),这意味着一个特定的分割可能包含一类的 0 个样本

即使使用分层 K 折,这种情况仍然会发生

这有点棘手。分层 K-Fold 确保每次分组中每个类别的部分相同。然而,这不仅仅取决于真实的班级。 例如,精确计算如下:TP/predicted yes。如果由于某种原因,您正在预测所有样本No, 你将会拥有predicted yes=0,这将导致未定义的精度(这可能导致未定义的F-Score).

这听起来像是一个边缘情况,但考虑到这样一个事实:在网格搜索中,您可能正在搜索大量不同的组合,其中一些组合可能完全关闭,并导致这种情况。

我希望这回答了你的问题!

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Scikit learn 错误消息“精度和 F 分数定义不明确,在标签中设置为 0.0”[重复] 的相关文章

随机推荐

  • 请确保您的 Service Worker 文件包含以下内容:/(const precacheManifest =)\[\](;)/

    我对 React Workbox 还很陌生 我试图让我的 Electron React 应用程序能够缓存所有图像和数据 以便在离线时可用 这正是我在 YouTube 视频中想要实现的目标 14 00 到 21 00 分钟 使用 React
  • Ruby on Rails:无法在生产中注销应用程序

    我在 Heroku 上部署了一个应用程序 除了注销之外 一切正常 当我单击链接退出时 出现以下错误 您要查找的页面不存在 您可能输入了错误的地址 或者页面可能已移动 如果您是应用程序所有者 请检查日志以获取更多信息 对于用户身份验证 我当然
  • 可以容纳 64 位大小整数的完美数字幂(使用优先级队列)

    我们怎样才能打印出所有可以表示为 64 位长整数的完美幂 4 8 9 16 25 27 完美幂是一个可以写为 ab 的数字 对于整数 a并且b 2 这不是作业问题 我在算法设计书的求职面试问题部分找到了它 提示 本章是基于优先级队列的 我的
  • 使用 onbeforeunload 事件,“离开页面”时 url 发生变化

    我有一个要求 当用户付款并到达成功页面并返回时 应该将其重定向到自定义页面 因此 如果我单击浏览器后退按钮 它将显示两个选项 离开页面和留在此页面 当我单击离开页面时 它应该重定向到我的自定义页面 我发现以下链接很有用 但不适用于 离开页面
  • 将枚举值绑定到标签 XAML

    我正在使用枚举字段来跟踪程序的状态 public enum StatiMacchina InAvvio 1 Pronta 2 InLavorazione 3 InMovimento 4 InAttesa 5 InErrore 6 我想绑定跟
  • 中心引导行和跨度

    我正在尝试使用引导程序将行及其内部的跨度居中 您可以在页脚中看到它 http www divisionforty com wall http www divisionforty com wall 我希望社交网络图标位于左侧 版权位于中间 由
  • MVC 6 OpenIdConnect

    目前 我在将 MVC 应用程序从 beta 3 迁移到 4 时遇到了多个问题 其中之一与 OpenIdConnect 到 Windows Azure 进行身份验证有关 当我转到具有授权属性的页面时 该页面会停止处理并位于空白页面 而不会显示
  • 我无法以编程方式检测 angularjs 中的值变化

    我是 angularjs 的新手 我遇到了麻烦 I have html像这样 section class content div div section
  • DTO 道 POCO BO

    事实上 我对这些术语以及它们之间的关系感到非常困惑 我读过有关其中每个人的一些内容 但我不了解工作流程 DTO 数据传输对象 传输值的对象BO 业务对象 域模型中的对象 用于制作业务逻辑的对象POCO 不知道 我在维基上读过定义 但什么也没
  • Vue-i18n - 无法读取未定义的属性“配置”

    首先 我向您展示什么是有效的 在 App js 中 import router from routes js import VueI18n from vue i18n const messages en message hello hell
  • PHP静态成员不保值

    大家好 我正在编写的 WordPress 插件遇到了一个奇怪的问题 但这与 WordPress 本身无关 更多地与 PHP 有关 所以请继续阅读 以便我可以解释 WordPress 插件已连接 以便调用 init 函数 这有效 我可以确认它
  • iOS 模拟器中屏幕内容仅显示在部分屏幕上

    我的 iOS 模拟器仅将内容显示为屏幕的一部分 我该如何修复它 我正在使用 XCode 6 3 1 谢谢 你只需要重新启动它 有时会发生这种情况 强制关闭模拟器并重新启动
  • Django 中的syncdb 时内容类型过时

    当我努力的时候syncdb对于我的 django 项目 我看到以下抱怨 The following content types are stale and need to be deleted myapp Any objects relat
  • 在Java中调用Python?

    我想知道是否可以使用 Jython 从 Java 代码调用 Python 函数 还是只能从 Python 调用 Java 代码 Jython 用于 Java 平台的 Python http www jython org index html
  • Docker 注册表镜像未使用

    当我尝试从本地镜像中提取图像时 它起作用了 docker login u docker p mypassword nexus3 pleiade mycomp fr 5000 docker pull nexus3 pleiade mycomp
  • 数字签名服务器上的私钥存储在哪里?

    我正在开发一个客户端服务器应用程序 需要在发送到客户端之前使用私钥对某些文件进行签名 然后 客户端将使用公钥验证签名 因此 私钥需要始终位于服务器上并且可由服务器应用程序读取 问题是我想知道在哪里存储我的私钥 这样在服务器受到威胁时更安全
  • 为什么 sizeWithFont:constrainedToSize:lineBreakMode: 返回错误的大小?

    我想要在表格单元格的标签中显示的字符串有两种可能的宽度 并且我需要计算高度 以便正确记录表格单元格的高度 然而 无论我对约束尺寸做什么 我都会得到相同的高度 这在我想要的情况下是不正确的 我正在使用的代码 CGFloat width 300
  • 如何使用prepareForReuse方法

    我发现这个方法叫做 void prepareForReuse I 阅读文档 https developer apple com documentation uikit uitableviewcell但我不明白如何使用它 当我滚动表格视图时
  • 如何使用 C# 创建包装 RTD 函数的 Excel 自动化插件?

    我有一个基于 RtdServer 的可用自动化插件 如何使用 RtdServer 在 C 中创建实时 Excel 自动化插件 https stackoverflow com questions 5397607 howto create a
  • Scikit learn 错误消息“精度和 F 分数定义不明确,在标签中设置为 0.0”[重复]

    这个问题在这里已经有答案了 我正在研究二元分类模型 分类器是朴素贝叶斯 我有一个几乎平衡的数据集 但是当我预测时 我收到以下错误消息 UndefinedMetricWarning Precision and F score are ill