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

【深度学习】数据集最常见的问题及其解决方案

简介

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

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

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

问题1:数据量不够。

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

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

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

注意事项:这通常不是一件容易的事,需要投入时间和金钱。此外,你可能想要做一个分析,以确定你需要有多少额外的数据。将结果与不同的数据集大小进行比较,并尝试进行推断。
深度学习数据集最常见的6大问题(附解决方案)

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

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

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

所有这些图像仍然代表“猫”类别

这可能非常强大,因为堆叠这些效果会为您的数据集提供指数级的样本。请注意,这通常不如收集更多 原始 数据
深度学习数据集最常见的6大问题(附解决方案)

组合数据增强技术。班级仍然是“猫”,应该被认可。

注意事项:所有增强技术可能无法用于您的问题。例如,如果要归类柠檬和酸橙,不与色相玩,因为这将是有意义颜色是对分类重要。
深度学习数据集最常见的6大问题(附解决方案)

这种类型的数据增加将使模型更难找到区别特征。

问题2:低质量的分类

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

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

具有专门分类器的两阶段预测。

问题3:低质量的数据

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

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

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

这是一个漫长的过程,但会改善您的结果。
深度学习数据集最常见的6大问题(附解决方案)

当然,这三个图像代表猫,但模型可能无法使用它。

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

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

如果可能,尝试使用相同的工具查找/构建数据集。
深度学习数据集最常见的6大问题(附解决方案)

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

问题4:不平衡的分类

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

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

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

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

这意味着您从过度表示的类中删除一些样本,或从代表不足的类中复制样本。比重复更好,使用数据增加,如前所述。
深度学习数据集最常见的6大问题(附解决方案)

补充猫类图片,减少青柠的图片可以让数据集不同的分类更平衡

问题5:数据不平衡

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

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

深度学习数据集最常见的6大问题(附解决方案)

两种可能性来改善格两种可能性来改善格式错误的图像式错误的图像。

解决方案2:规范化数据,使每个样本的数据都在相同的值范围内。
深度学习数据集最常见的6大问题(附解决方案)

将值范围标准化为在整个数据集中保持一致。

问题6:没有验证集和测试集

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

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

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

  1. 在训练集上训练你的模型。
  2. 在验证集上测试它们以确保没有过拟合
  3. 选择最有希望的模型。在测试集上测试它,这将为您提供模型的真实准确性。

深度学习数据集最常见的6大问题(附解决方案)

注意:一旦您选择了生产模型,请不要忘记在整个 数据集上进行训练!数据越多越好!

结论

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

原文:Stop Feeding Garbage To Your Model! — The 6 biggest mistakes with datasets and how to avoid them.

 

相关文章:

【深度学习】数据集最常见的问题及其解决方案

简介 如果您还没有听过,请告诉您一个事实,作为一名数据科学家,您应该始终站在一个角落跟你说:“你的结果与你的数据一样好。” 尝试通过提高模型能力来弥补糟糕的数据是许多人会犯的错误。这相当于你因为原来的汽车使用了劣质汽…...

Excel文件带有密码的只读模式,如何设置?

Excel带有密码的除了打开密码和工作表保护以外,其实还有一种可以设置密码的方法,今天给大家分享如何设置带有密码的只读模式。 打开excel文件,将文件进行【另存为】设置,然后停留在保存路径的界面中,我们点击下面的工…...

【Qt之json文件】json文件介绍及相关读写类介绍、示例

JSON介绍 JSON(JavaScript Object Notation)是一种源自Javascript的编码对象数据的轻量级的数据交换格式,易于理解和编写,JSON但现在已广泛用作互联网上的数据交换格式。 Qt提供了处理JSON数据的支持。Qt中的JSON支持提供了一个易…...

arp 隔离

目录 问题查找解决方式参考 问题 linux 在使用双网卡系统时,当这两个不同网段的网口接到同一个交换机上,会出现 eth0 的 arp 请求,会在 eth1 上收到并回复,相当于自己检测到了自己的 ip。 查找 linux 的底层,默认情…...

数据结构与算法(文章链接汇总)

数据结构与算法(一):概述与复杂度分析 数据结构与算法(二):数组与链表 数据结构与算法(三):栈与队列 数据结构与算法(四):哈希表 数据…...

代码随想录算法训练营第五十九天 | 647. 回文子串、516.最长回文子序列

647. 回文子串 链接: 代码随想录 (1)代码 516.最长回文子序列 链接: 代码随想录 (1)代码...

非关系型数据库-Redis

一、缓存概念 缓存是为了调节速度不一致的两个或多个不同的物质的速度,在中间对速度较慢的一方起到加速作用,比如CPU的一级、二级缓存是保存了CPU最近经常访问的数据,内存是保存CPU经常访问硬盘的数据,而且硬盘也有大小不一的缓存…...

HTML基本讲解与使用

目录 html的由来: 什么是HTML: HTML的主要特点: HTML文档结构: HTML元素: HTML元素属性: 文本和格式化: 链接和图像: 列表: 表格: 表单: 嵌套和结构: HTML注释: 样式…...

linux uname详解 -s -r -a 查看内核版本

简介 uname命令用于显示操作系统信息,例如内核版本、主机名、处理器类型等 uname常用的有-a,-r,-rs 参数 --help  显示帮助。-a 或--all 显示全部信息,包括内核名、主机名、内核版本、处理器类型和硬件架构等…...

Linux常用命令——cmp命令

在线Linux命令查询工具 cmp 比较两个文件是否有差异 补充说明 cmp命令用来比较两个文件是否有差异。当相互比较的两个文件完全一样时,则该指令不会显示任何信息。若发现有差异,预设会标示出第一个不通之处的字符和列数编号。若不指定任何文件名称或是…...

C语言之排序

1.冒泡排序 冒泡排序就不多说了,只需要两层循环嵌套,两两比较确定相对正确的顺序即可。 2.插入排序 插入排序的思想就是每一次向后寻找一个再将其与前面有序的部分进行对比,寻找合适位置插入。 这里关键要避免让前移超出目前读取的数字&…...

GitHub-使用 Git工具 创建密钥id_rsa.pub

快速导航 步骤1 打开Git Bash步骤2 输入指令【ssh-keygen】步骤3 打开创建的公钥文件步骤4 复制其中所有内容步骤5 打开GitHub中的Setting界面步骤6 添加SSH keys 步骤1 打开Git Bash 打开Git Bash 工具 步骤2 输入指令【ssh-keygen】 输入指令【ssh-keygen】,并…...

C++多重、多层、分层继承

在本文中,您将学习C 编程中的不同继承模型:带有示例的多继承,多层和分层继承。 继承是面向对象编程语言的核心功能之一。它允许软件开发人员从现有的类派生一个新的类。派生类继承基类(现有类)的功能。C 编程中有多种…...

ThingsBoard的数据分析-自定义节点来订阅kafka stream的消息

1、概述 在ThingsBoard官方文档中有说明:ThingsBoard 规则引擎支持对传入遥测数据的基本分析,例如阈值交叉。规则引擎背后的想法是提供基于设备属性或数据本身将数据从物联网设备路由到不同插件的功能。 然而,大多数现实生活中的用例也需要高级分析的支持:机器学习、预测分…...

Python WSGI HTTP Server - Gunicorn

基本概念 Gunicorn,也称为“Green Unicorn”,是一个Python WSGI HTTP Server,用于运行Python Web应用程序。WSGI(Web Server Gateway Interface)是Python应用程序和Web服务器之间的一个接口,允许应用程序和…...

[论文笔记]GPT-2

引言 今天继续GPT系列论文, 这次是Language Models are Unsupervised Multitask Learners,即GPT-2,中文题目的意思是 语言模型是无监督多任务学习器。 自然语言任务,比如问答、机器翻译、阅读理解和摘要,是在任务相关数据集上利用监督学习的典型方法。作者展示了语言模型…...

第十三届蓝桥杯模拟赛第三期

A.填空题 问题描述 请问十六进制数 2021ABCD 对应的十进制是多少? 参考答案 539077581 import java.math.*; public class Main {public static void main(String[] args) {String strnew BigInteger("2021ABCD",16).toString(10);System.out.printl…...

代碼隨想錄算法訓練營|第四十四天|01背包问题 二维、01背包问题 一维、416. 分割等和子集。刷题心得(c++)

目录 01背包問題 - DP二維數組 01 背包問題描述 暴力解 動態規劃 確認DP數組以及下標的含意 確定遞推公式 01背包问题 一维 一维DP 数組(滾動数組) 動態規劃五部曲 定義DP数組以及其下標含意 遞推公式 初始化 遍歷順序 讀題 416. 分割等和子集 自己看到题目的第…...

【算法训练-回溯算法 零】回溯算法解题框架

抽象地说,解决一个回溯问题,实际上就是遍历一棵决策树的过程,树的每个叶子节点存放着一个合法答案。你把整棵树遍历一遍,把叶子节点上的答案都收集起来,就能得到所有的合法答案。站在回溯树的一个节点上,你…...

GAN.py

原代码地址:github.com/zqhang/MTGFLOW 目录 def ConvEncoder() def ConvDecoder() class CNNAE(torch.nn.Module): class R_Net(torch.nn.Module): class D_Net(torch.nn.Module): def R_Loss() def D_Loss(&#xff09…...

业务系统对接大模型的基础方案:架构设计与关键步骤

业务系统对接大模型:架构设计与关键步骤 在当今数字化转型的浪潮中,大语言模型(LLM)已成为企业提升业务效率和创新能力的关键技术之一。将大模型集成到业务系统中,不仅可以优化用户体验,还能为业务决策提供…...

【第二十一章 SDIO接口(SDIO)】

第二十一章 SDIO接口 目录 第二十一章 SDIO接口(SDIO) 1 SDIO 主要功能 2 SDIO 总线拓扑 3 SDIO 功能描述 3.1 SDIO 适配器 3.2 SDIOAHB 接口 4 卡功能描述 4.1 卡识别模式 4.2 卡复位 4.3 操作电压范围确认 4.4 卡识别过程 4.5 写数据块 4.6 读数据块 4.7 数据流…...

服务器硬防的应用场景都有哪些?

服务器硬防是指一种通过硬件设备层面的安全措施来防御服务器系统受到网络攻击的方式,避免服务器受到各种恶意攻击和网络威胁,那么,服务器硬防通常都会应用在哪些场景当中呢? 硬防服务器中一般会配备入侵检测系统和预防系统&#x…...

376. Wiggle Subsequence

376. Wiggle Subsequence 代码 class Solution { public:int wiggleMaxLength(vector<int>& nums) {int n nums.size();int res 1;int prediff 0;int curdiff 0;for(int i 0;i < n-1;i){curdiff nums[i1] - nums[i];if( (prediff > 0 && curdif…...

python爬虫:Newspaper3k 的详细使用(好用的新闻网站文章抓取和解析的Python库)

更多内容请见: 爬虫和逆向教程-专栏介绍和目录 文章目录 一、Newspaper3k 概述1.1 Newspaper3k 介绍1.2 主要功能1.3 典型应用场景1.4 安装二、基本用法2.2 提取单篇文章的内容2.2 处理多篇文档三、高级选项3.1 自定义配置3.2 分析文章情感四、实战案例4.1 构建新闻摘要聚合器…...

Spring Boot+Neo4j知识图谱实战:3步搭建智能关系网络!

一、引言 在数据驱动的背景下&#xff0c;知识图谱凭借其高效的信息组织能力&#xff0c;正逐步成为各行业应用的关键技术。本文聚焦 Spring Boot与Neo4j图数据库的技术结合&#xff0c;探讨知识图谱开发的实现细节&#xff0c;帮助读者掌握该技术栈在实际项目中的落地方法。 …...

智能AI电话机器人系统的识别能力现状与发展水平

一、引言 随着人工智能技术的飞速发展&#xff0c;AI电话机器人系统已经从简单的自动应答工具演变为具备复杂交互能力的智能助手。这类系统结合了语音识别、自然语言处理、情感计算和机器学习等多项前沿技术&#xff0c;在客户服务、营销推广、信息查询等领域发挥着越来越重要…...

C#学习第29天:表达式树(Expression Trees)

目录 什么是表达式树&#xff1f; 核心概念 1.表达式树的构建 2. 表达式树与Lambda表达式 3.解析和访问表达式树 4.动态条件查询 表达式树的优势 1.动态构建查询 2.LINQ 提供程序支持&#xff1a; 3.性能优化 4.元数据处理 5.代码转换和重写 适用场景 代码复杂性…...

解析奥地利 XARION激光超声检测系统:无膜光学麦克风 + 无耦合剂的技术协同优势及多元应用

在工业制造领域&#xff0c;无损检测&#xff08;NDT)的精度与效率直接影响产品质量与生产安全。奥地利 XARION开发的激光超声精密检测系统&#xff0c;以非接触式光学麦克风技术为核心&#xff0c;打破传统检测瓶颈&#xff0c;为半导体、航空航天、汽车制造等行业提供了高灵敏…...

Python 训练营打卡 Day 47

注意力热力图可视化 在day 46代码的基础上&#xff0c;对比不同卷积层热力图可视化的结果 import torch import torch.nn as nn import torch.optim as optim from torchvision import datasets, transforms from torch.utils.data import DataLoader import matplotlib.pypl…...