分类:类内数据倾斜

2024-01-18

我正在尝试构建一个多标签分类器来预测某些输入数据为 0 或 1 的概率。我正在使用神经网络和 Tensorflow + Keras(稍后可能是 CNN)。

问题如下: 数据存在很大偏差。负面例子比正面例子多得多,大概是90:10。所以我的神经网络几乎总是输出非常低的正面例子概率。在大多数情况下,使用二进制数它会预测 0。

几乎所有类别的性能都 > 95%,但这是因为它几乎总是预测为零...... 因此,假阴性的数量非常高。

一些建议如何解决这个问题?

以下是我到目前为止考虑的想法:

  1. 使用定制的损失函数更多地惩罚假阴性(我的第一次尝试失败了)。与类相似,类中正面例子的权重多于负面例子。这类似于班级权重,但在一个班级内。 您将如何在 Keras 中实现这一点?

  2. 通过克隆正例来对正例进行过采样,然后过度拟合神经网络,以使正例和负例达到平衡。

提前致谢!


你走在正确的轨道上。

通常,您可以在训练之前平衡数据集,即减少代表性过高的类别,或者为代表性不足的类别生成人工(增强)数据以提高其出现率。

  1. 减少人数过多的班级 这个更简单,您只需随机选择代表性不足的类中尽可能多的样本,丢弃其余的并使用新的子集进行训练。当然,缺点是您会失去一些学习潜力,具体取决于您的任务的复杂程度(有多少功能)。

  2. 增强数据 根据您正在使用的数据类型,您可以“增强”数据。这仅意味着您从数据中获取现有样本并稍微修改它们并将它们用作附加样本。这对于图像数据、声音数据非常有效。您可以翻转/旋转、缩放、添加噪音、增加/减少亮度、缩放、裁剪等。 这里重要的是你要遵守现实世界中可能发生的事情。例如,如果您想识别“70 英里/小时限速”标志,那么翻转它没有意义,您永远不会遇到真正翻转的 70 英里/小时标志。如果你想识别一朵花,翻转或旋转它是允许的。对于声音来说也是如此,稍微改变音量/频率不会有太大影响。但是反转音轨会改变它的“含义”,您不必识别现实世界中反向说出的单词。

现在,如果您必须增加销售数据、元数据等表格数据……这会更加棘手,因为您必须小心not将您自己的假设隐式地输入到模型中。

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

分类:类内数据倾斜 的相关文章

随机推荐

  • 声明 std::string 变量后,Cout 没有输出

    我编写了一个简单的程序 返回作为参数传递的 IP 地址的主机名 该程序使用两个函数 getaddrinfo 和 getnameinfo 我正在使用 Linux Mint Netbeans IDE 和 G 编译器 输出没问题 没有错误 但是当
  • 阿拉伯字符“??????”关于 php 和 mysql [重复]

    这个问题在这里已经有答案了 这是我的问题 我有一个阿拉伯数据库 mysqli UTF8 general ci 并且我的 php 文件的字符集是 UTF 8 当我出售数据时 我得到 在 php 上 我的管理员我可以毫无问题地写入和读取 在 p
  • Django 模型主键作为一对

    我正在尝试制作一个应用程序 用户可以登录他们的个人资料并将歌曲添加到他们最喜欢的列表中 我为此定义了 M2M 关系 我的问题是如何说 歌曲 歌手 的组合是独特的 我搜索了一下 发现通过unique together也许可以 这是设置的正确方
  • 使用 LEFT JOIN 删除

    我想根据引用第一个表的另一个表中存在的数据从表中删除 但是 当我将其作为 SELECT stetement 运行时 我有有效的代码并显示要删除的值 但是当我将其更改为删除它给了我错误 我不明白它们为什么在那里 DELETE leadCust
  • 如何使用facet_wrap在每个方面具有不同数字的离散类别之间创建相等的距离

    我的目标是使图中所有国家之间的距离大致相等 例如 在第一类中 Increase 国家分散 另一方面 第二类和第三类国家彼此距离太近 这迫使我减小国家文本的大小 例如 IS UK 和绘制的估计值 例如 1 5 1 2 因此 一旦我将此文件提取
  • GCE Kubernetes 会话持久化

    我正在 GCE Kubernetes 上运行一个 wordpress woocommerce 网站 但由于会话持久性而在扩展时遇到问题 LoadBalancer GCE Ingress 将所有流量发送到反向代理 然后反向代理将流量发送到我设
  • 在 Scala 中将列表[Try[A]] 转换为列表[A]

    我想从输入数据中过滤掉错误的输入 我目前正在使用scala util Try包装任何异常 下面是一个简单的例子 其中 3I 抛出一个NumberFormatException 我想知道在 Scala 中是否有更好的方法来做到这一点 val
  • OpenGL 和 QtQuick 纹理问题

    我正在基于 Qt 附带的 openglunderqml 示例在 C 中开发一个简单的 QQuickItem 实现 我做了一些修改以使用不同的着色器和加载的两个纹理 这个想法是着色器将在两个纹理之间交叉淡入淡出 本质上只是我加载到纹理中的图像
  • Flutter Web:堆栈和耀斑问题

    我试图在 Flutter Web 开发频道 v1 13 2 上创建一个简单的网页 但出现了这个奇怪的问题 当我尝试在堆栈小部件中放置耀斑动画时 该堆栈小部件分别有 2 个附加小部件 一个背景和一个居中文本 耀斑似乎没有出现 但是当我移除背景
  • 如何将 8 个打包的 32 位整数(在 __m256i 中)的 +-1 符号打包为 64 位整数的字节?

    给定一个 m256i打包 32 位有符号整数的价值 如何获取每个字节所在的单个 64 位数字1如果原始的相应 32 位有符号整数 m256i大于或等于0 并得到 1如果该 32 位整数是负数 AVX2 可能还有 AVX512 很有趣 这是另
  • Jenkins 要求接受 TFS EULA

    我在 Jenkins 上创建了一个附加到 TFS 服务器的构建作业 我使用 Team Explorer Everywhere 来促进这一点 我第一次运行该作业时 收到以下消息 Error You must accept the End Us
  • 如何使用 Express.js 指定 HTTP 错误代码?

    我努力了 app get function req res next var e new Error error message e status 400 next e and app get function req res next r
  • FIND_IN_SET 有两个字符串

    我有这个员工列表的员工表 ID EMPLOYEE ID SKILLS 1 1 3 4 2 2 3 5 2 3 3 1 5 和列
  • ARC Welder 打包的 Android 应用程序只能在 Chrome 操作系统上使用吗?

    如果我使用 Google ARC Welder 打包 Android 应用程序并通过 Chrome 网上应用店分发它 它是否适用于 Windows Mac Linux 还是仅适用于 Chrome 操作系统 如果是这样 有什么消息表明这种情况
  • 使用 openssl C 进行 AES(aes-cbc-128、aes-cbc-192、aes-cbc-256)加密/解密

    我只想用这 3 种模式测试 openSSL 的 AES 密钥长度为 128 192 和 256 但我的解密文本与我的输入不同 我不知道为什么 另外 当我传递一个巨大的输入长度 比方说 1024 字节 时 我的程序显示core dumped
  • 如何在张量流中实现多元线性随机梯度下降算法?

    我从单变量线性梯度下降的简单实现开始 但不知道将其扩展到多元随机梯度下降算法 单变量线性回归 import tensorflow as tf import numpy as np create random data x data np r
  • 我什么时候应该在 scanf() 中使用 & 符号

    在c中使用 符号时使用的规则是什么scanf struct Student char name 20 int id int main void struct Student std1 printf enter name and id of
  • 查看 Azure KeyVault 中 Secret 的内容

    这似乎是一个非常基本的问题 但我在 Azure 中创建了一个 KeyVault 并向其中添加了两个 Secret 它们是使用以下方法保护的纯文本 hello world 示例ConvertTo SecureString Using Get
  • gdb 'x' 命令有什么作用?

    在我寻求更多地了解计算机的一般知识时 我偶然发现了一本书 其中有一些关于反汇编 x86 汇编语言以及 C 和 x86 汇编之间的关系的章节 现在我一直在读这个GDB命令 但我无法完全理解它 该命令及其结果如下 gdb x 32xw esp
  • 分类:类内数据倾斜

    我正在尝试构建一个多标签分类器来预测某些输入数据为 0 或 1 的概率 我正在使用神经网络和 Tensorflow Keras 稍后可能是 CNN 问题如下 数据存在很大偏差 负面例子比正面例子多得多 大概是90 10 所以我的神经网络几乎