当前位置: 首页 > news >正文

深度学习数据集最常见的6大问题

文章目录

  • 简介
  • Q1 数据量不够
  • Q2 低质量的分类
  • Q3 低质量的数据
  • Q4 不平衡的分类
  • Q5 数据不平衡
  • Q6 没有验证集和测试集
  • 结论

简介

如果您还没有听过,请告诉您一个事实,作为一名数据科学家,您应该始终站在一个角落跟你说:“你的结果与你的数据一样好。”

尝试通过提高模型能力来弥补糟糕的数据是许多人会犯的错误。这相当于你因为原来的汽车使用了劣质汽油导致汽车表现不佳,而更换了一辆超级跑车。这种情况下应该做的是提炼汽油,而不是升级的车。在这篇文章中。我将向您解释如何通过提高数据集质量的方法来轻松获取更好的结果。

注意:我将以图像分类的任务为例,但这些技巧可以应用于各种数据集。

Q1 数据量不够

如果你的数据集过小,你的模型将没有足够多的样本,概括找到其中的特征,在此基础上拟合的数据,会导致虽然训练结果没太出错但是测试错误会很高。

解决方案1:收集更多数据。

您可以尝试找到更多的相同源做为您的原始数据集,或者从另一个相似度很高的源,再或者如果你绝对要来概括。

注意事项:这通常不是一件容易的事,需要投入时间和金钱。此外,你可能想要做一个分析,以确定你需要有多少额外的数据。将结果与不同的数据集大小进行比较,并尝试进行推断。

在这里插入图片描述
在这种情况下,似乎我们需要500k样本才能达到目标 误差。这意味着我们现在收集的数据量是目前的50倍。处理数据的其他方面或 模型可能更有效。

解决方案2:通过创建具有轻微变化的同一图像的多个副本来增强数据。

这种技术可以创造奇迹,并以极低的成本生成大量额外的图像。您可以尝试裁剪,旋转,平移或缩放图像。您可以添加 噪点,模糊,改变颜色或阻挡部分噪音。在所有情况下,您需要确保数据仍然代表同一个类。

在这里插入图片描述
所有这些图像仍然代表“猫”类别

这可能非常强大,因为堆叠这些效果会为您的数据集提供指数级的样本。请注意,这通常不如收集更多 原始 数据。
在这里插入图片描述
注意事项:所有增强技术可能无法用于您的问题。例如,如果要归类柠檬和酸橙,不与色相玩,因为这将是有意义颜色是对分类重要。

在这里插入图片描述

Q2 低质量的分类

这很简单,但如果可能的话,花些时间浏览一下您的数据集,并验证每个样本的标签。这可能需要一段时间,但在数据集中使用反例会对 学习过程产生不利影响。

此外,为您的类选择正确的粒度级别。根据问题,您可能需要更多或更少的类。例如,您可以使用全局分类器对小猫的图像进行分类,以确定它是动物,然后通过动物分类器运行它以确定它是小猫。一个巨大的模型可以做到这两点,但它会更难。

在这里插入图片描述
具有专门分类器的两阶段预测。

Q3 低质量的数据

如引言中所述,低质量数据只会导致低质量的结果。

数据集中的数据集中的样本可能与您要使用的数据集相差太远。这些可能会更混乱的模式不是很有帮助。

解决方案:删除最糟糕的图像。

这是一个漫长的过程,但会改善您的结果。
在这里插入图片描述
当然,这三个图像代表猫,但模型可能无法使用它。

另一个常见问题是当您的数据集由与真实世界应用程序不 匹配的数据组成时。例如,如果图像来自完全不同的来源。

解决方案:考虑技术的长期应用,以及将用于获取生产数据的方法。

在这里插入图片描述
使用不代表您的真实世界应用程序的数据通常是一个坏主意。您的模型可能会提取在现实世界中无法使用的功能。

Q4 不平衡的分类

如果数每类样本的不是大致的相同的所有类,模型可能有利于统治阶级的倾向,因为它会导致一个较低的 错误。我们说该模型存在偏差,因为类分布是偏态的。这是一个严重的问题,也是您需要查看精度,召回或混淆矩阵的原因。

解决方案1:收集代表性不足的分类的更多样本。

然而,这在时间和金钱上通常 是昂贵的,或者根本不可行。

解决方案2:对数据进行过度/不足的采样。

这意味着您从过度表示的类中删除一些样本,或从代表不足的类中复制样本。比重复更好,使用数据增加,如前所述。
在这里插入图片描述
补充猫类图片,减少青柠的图片可以让数据集不同的分类更平衡

Q5 数据不平衡

如果您的数据没有特定 格式,或者值不在特定 范围内,则您的模型可能无法处理它。你将有形象,有更好的结果横宽比和像素值。

解决方案1:裁剪或拉伸数据,使其具有与其他样本相同的方面或格式。

在这里插入图片描述
两种可能性来改善格两种可能性来改善格式错误的图像式错误的图像。

解决方案2:规范化数据,使每个样本的数据都在相同的值范围内。
在这里插入图片描述
将值范围标准化为在整个数据集中保持一致。

Q6 没有验证集和测试集

清理,扩充和正确标记数据集后,需要将其拆分。许多人通过以下方式将其拆分:80%用于训练,20%用于测试,这 使您可以轻松发现过度装配。但是,如果您在同一测试集上尝试多个模型,则会发生其他情况。通过选择具有最佳测试精度的模型,您实际上过度拟合了测试集。发生这种情况是因为您手动选择的模型不是其内在模型 值,但其性能上的特定数据集。

解决方案:将数据集拆分为三个:训练集、验证集、测试集。

该屏蔽你的测试被设置过度拟合由模型的选择。选择过程变为:

  • 在训练集上训练你的模型。
  • 在验证集上测试它们以确保没有过拟合。
  • 选择最有希望的模型。在测试集上测试它,这将为您提供模型的真实准确性。
    在这里插入图片描述
    注意:一旦您选择了生产模型,请不要忘记在整个 数据集上进行训练!数据越多越好!

结论

我希望到现在你确信在考虑你的模型之前你必须注意你的数据集。您现在知道处理数据的最大错误,如何避免陷阱,以及如何构建杀手数据集的提示和技巧!如有疑问,请记住:“获胜者是不是一个最好的模式,这是一个最好的数据。”。

相关文章:

  • 打开算法之门,算法学习瓶颈、学习方法
  • Mybatis的事务管理机制。
  • 微信小程序通过字典表匹配对应数据
  • 嵌入式系统开发笔记102:DEV C++的使用
  • 37.(前端)菜单的展示
  • 计算机的硬件(计算机组成原理)
  • Linux权限理解
  • 注册商标的重要性
  • 65.【Study_kuang 多线程】
  • 【JavaScript】事件高级
  • STM32使用PWM+DMA方式驱动WS2812灯珠
  • 【vue】html页面怎么设置页签图标?比如B站是个小电视的图标的效果
  • 配置Swagger2生成API接口文档
  • Ai-WB1系列 AT指令连接MQTT服务器
  • 国货之光!ATECLOUD—功能如此强大的测试测量上位机开发工具软件!
  • [译]如何构建服务器端web组件,为何要构建?
  • 《微软的软件测试之道》成书始末、出版宣告、补充致谢名单及相关信息
  • 【162天】黑马程序员27天视频学习笔记【Day02-上】
  • CSS实用技巧干货
  • Django 博客开发教程 8 - 博客文章详情页
  • JavaScript的使用你知道几种?(上)
  • MaxCompute访问TableStore(OTS) 数据
  • Median of Two Sorted Arrays
  • Mysql5.6主从复制
  • PhantomJS 安装
  • REST架构的思考
  • Swift 中的尾递归和蹦床
  • Vue2.0 实现互斥
  • 分布式熔断降级平台aegis
  • 技术胖1-4季视频复习— (看视频笔记)
  • 前端性能优化——回流与重绘
  • 使用阿里云发布分布式网站,开发时候应该注意什么?
  • 王永庆:技术创新改变教育未来
  • 因为阿里,他们成了“杭漂”
  • 责任链模式的两种实现
  • 如何用纯 CSS 创作一个货车 loader
  • ​io --- 处理流的核心工具​
  • #NOIP 2014#day.2 T1 无限网络发射器选址
  • (007)XHTML文档之标题——h1~h6
  • (2)leetcode 234.回文链表 141.环形链表
  • (20)目标检测算法之YOLOv5计算预选框、详解anchor计算
  • (7)摄像机和云台
  • (aiohttp-asyncio-FFmpeg-Docker-SRS)实现异步摄像头转码服务器
  • (NSDate) 时间 (time )比较
  • (Redis使用系列) Springboot 整合Redisson 实现分布式锁 七
  • (附源码)springboot美食分享系统 毕业设计 612231
  • (南京观海微电子)——COF介绍
  • (七)glDrawArry绘制
  • (三)Honghu Cloud云架构一定时调度平台
  • (十八)Flink CEP 详解
  • (五)MySQL的备份及恢复
  • (一)80c52学习之旅-起始篇
  • (已解决)报错:Could not load the Qt platform plugin “xcb“
  • ****** 二 ******、软设笔记【数据结构】-KMP算法、树、二叉树
  • .net 7和core版 SignalR