精华内容
下载资源
问答
  • 数据集划分
    千次阅读
    2021-10-12 13:51:33

    问题

    图像数据集是训练模型与测试模型必备的,一般而言收集到的数据是整个数据,会将整个数据划分成三个数据集,训练集,验证集以及测试集。

    验证和测试的数据要确保特征分布和训练集接近,类别比例也是接近的,这样得到的准确率或者loss才真实。

    在做ocr识别模型训练的时候,样本比较大,这时候有点疑惑该如何划分数据集,且数据集中较大比例是自动生成的数据。

    方法

    • 一般而言,对于样本量是非常多的数据时候,可以按照7:3~9:1划分数据集。
    • 但是对于几百万或千万级数据量而言,测试集样本不需要太多,只需要划分一定数量的数据作为验证集,划太多也没有意义,毕竟测试集的目的是验证其泛化性能。在pp-ocr文章中,1700w训练数据,测试样本1.7w张

    另外对于混合自动生成的数据以及真实数据的情况,需要做一些样本均衡。保证一个batch中真实数据样本和合成数据样本的比例是1:1~1:3左右效果比较理想。如果合成数据过大,会过拟合到合成数据,预测效果往往不佳。

    还有一种启发性的尝试是可以先用大量合成数据训练一个base模型,然后再用真实数据微调,在一些简单场景效果也是会有提升的。

    参考

    更多相关内容
  • CUB_200_2011数据集划分成train和test,附带划分源码
  • 机器学习数据集划分方法

    千次阅读 2022-04-23 14:08:13
    数据集划分方法一、留出法二、交叉验证法三、自助法四、调参与最终模型参考文献 一、留出法 1、将数据集 DDD 划分为两个互斥的集合:训练集 SSS 和测试集 TTT 。 2、训练/测试集划分时要保持数据分布一致性,即保证...

    一、留出法

    1、将数据集 D D D 划分为两个互斥的集合:训练集 S S S 和测试集 T T T

    2、训练/测试集划分时要保持数据分布一致性,即保证训练集和测试集中类别比例一致,可采用分层采样

    3、在给定训练/测试样本的比例后,仍然存在多种划分方法对初始数据集 D D D 进行分割,如把 D D D 中样本进行排序,然后把前350个正例放到训练集中,也可把后350个正例放到训练集中。一般采用若干次随机划分、重复进行试验评估后取平均值作为留出法的评估结果。

    4、存在问题:若令训练集 S S S 包含绝大数样本,则训练处的模型可能更接近于用 D D D 训练出的模型,但由于 T T T 较小,评估结果可能不够稳定准确;若令测试集 T T T 包含多一些样本,则训练集 S S S D D D 差别更大了,被评估的模型与用 D D D 训练出的模型相比可能有较大差别,从而降低了评估结果的保真性。可从“偏差-方差”角度来理解:测试集小时,评估结果为方差较大;训练集小时,评估结果为偏差较大。

    5、常见划分比例:训练集/测试集 = 2/1~4/1。

    二、交叉验证法

    1、将数据集 D D D 划分为 k k k 个大小相似的互斥子集,每个子集尽可能保持数据分布的一致性,即从 D D D 中通过分层采样得到。然后每次用 k − 1 k-1 k1 个子集的并集作为训练集,余下的 1 1 1 个子集作为测试集,得到 k k k 组训练/测试集,最终返回这 k k k 个测试结果的均值。

    2、交叉验证评估结果的稳定性和保真性很大程度上取决 k k k 的取值,通常把交叉验证法称为 “ k k k 折交叉验证”, k k k 最常取用的值为10。

    3、与留出法相似,将数据集 D D D 划分为 k k k 个子集同样存在多种划分方式,为减小因样本划分不同而引入的差别, k k k折交叉验证同查要随机使用不同的划分重复 p p p 次,最终的评估结果是这 p p p k k k 折交叉验证的结果的均值,常见的有 “10次10折交叉验证”。

    4、特例:留一法,即将 D D D 划分为 m m m 个子集( m m m D D D 中的样本数)。留一法不受随机样本划分方式的影响,被评估的模型与期望评估用的 D D D 训练出来的模型很相似,但模型训练的计算开销很大。

    三、自助法

    1、在留出法与交叉验证法中,会因训练样本规模的不同而导致估计偏差,留一法计算复杂度又太高,而自助法可以减少训练样本规模不同造成的影响,同时还能比较高效的进行实验估计。

    2、给定包含 m m m 个样本的数据集 D D D ,对它进行采样产生数据集 D ′ D' D ,每次随机从 D D D 中挑选一个样本,将其拷贝放入 D ′ D' D ,然后再将这个样本放回初始数据集 D D D ,使得该样本在下次采样时仍可能被采样到,重复此过程 m m m 次,得到包含 m m m 个训练样本的数据集 D ′ D' D D D D 中样本在 m m m 次采样中始终不被采样到的概率是 ( 1 − m ) m (1-m)^m (1m)m 取极限得到
    lim ⁡ m → + ∞ ( 1 − 1 m ) m = 1 e ≈ 0.368 \lim_{m \to +\infty}(1-\frac{1}{m})^m=\frac{1}{e} \approx 0.368 m+lim(1m1)m=e10.368
    通过自助采样,输出数据集 D D D 中约有36.8%的样本未出现在采样数据集 D ′ D' D 中,于是用 D ′ D' D 做训练集, D − D ′ D-D' DD 做测试集。

    3、自助法在数据集较小、难以有效划分训练/测试集时很有用。此外,自助法能从初始数据集中产生多个不同的训练集,这对集成学习等方法又很大的好处。

    4、自助法产生的数据集改变了初始数据集的分布,这会引入估计偏差,因此在初始数据量足够是,留出法和交叉验证法更常用。

    四、调参与最终模型

    1、将数据集划分为训练集、验证集和测试集。

    2、基于验证集上的性能在进行模型的选择和调参。

    3、模型选择和调参方法使用网格搜索,参数的选择采用先划定参数范围和变化步长,再进行网格搜索,这样选定的参数往往不是最佳的,但这是在计算开销和性能估计之间进行折中的结果。

    4、在模型和参数选定后,将训练集和验证集合并,在合并完的数据集上用选定的模型和参数重新训练一个模型,最后交给测试集评估。


    参考文献

    周志华 著.机器学习,北京:清华大学出版社,2016. (ISBN 978-7-302-42328-7)

    展开全文
  • 数据集划分

    千次阅读 2020-07-04 17:35:22
    留出法:直接将数据集D划分为两个互斥的部分,其中一部分作为训练集S,另一部分用作测试集T。    通常训练集和测试集的比例为70%:30%。同时,训练集测试集的划分有两个注意事项:   1. 尽可能保持数据分布的...

    留出法:直接将数据集D划分为两个互斥的部分,其中一部分作为训练集S,另一部分用作测试集T。

         通常训练集测试集的比例为70%:30%。同时,训练集测试集的划分有两个注意事项:

      1. 尽可能保持数据分布的一致性。避免因数据划分过程引入的额外偏差而对最终结果产生影响。在分类任务中,保留类别比例的采样方法称为“分层采样”(stratified sampling)。

        2. 采用若干次随机划分避免单次使用留出法的不稳定性。

    交叉验证法:先将数据集D划分为k个大小相似的互斥子集,每次采用k−1个子集的并集作为训练集,剩下的那个子集作为

                          测试集。进行k次训练测试,最终返回k个测试结果的均值。又称为“k折交叉验证”(k-fold cross validation)。

    为减少因样本划分带来的偏差,通常重复p次不同的划分,最终结果是p次k折交叉验证结果的均值。 

    留一法:是k折交叉验证k=m(m为样本数)时候的特殊情况。即每次只用一个样本作测试集。该方法计算开销较大。

    自助法:以自助采样为基础(有放回采样)。每次随机从D中挑选一个样本,放入D′中,然后将样本放回D中,重复m次之后,

                 得到了包含m个样本的数据集。

      点:自助法在数据集较小、难以有效划分训练/测试集时很有用。

      缺点:然而自助法改变了初始数据集的分布,这回引入估计偏差。

    展开全文
  • 数据:使用kaggle上Titanic数据集 划分方法:随机划分 # 导入pandas模块,sklearn中model_select模块 import pandas as pd from sklearn.model_select import train_test_split # 读取数据 data = pd.read_csv('....
  • sklearn的cross_validation包中含有将数据集按照一定的比例,随机划分为训练集和测试集的函数train_test_split from sklearn.cross_validation import train_test_split #x为数据集的feature熟悉,y为label. x_...
  • 数据集划分的三种常见方式!

    万次阅读 2021-01-15 08:18:00
    公众号后台回复“图书“,了解更多号主新书内容作者:xiaoyi来源:小一的学习笔记今天分享一个比较简单的问题:数据集划分的三种方法。数据集划分算是在数据分析建模中比较重要的,模型的好坏不...


    公众号后台回复“图书“,了解更多号主新书内容

    作者:xiaoyi

    来源:小一的学习笔记

    今天分享一个比较简单的问题:数据集划分的三种方法。

    数据集划分算是在数据分析建模中比较重要的,模型的好坏不但和训练数据有关,还和测试数据有关,当然,也和评估指标有关,不过今天先来看前者。


    ▶什么是数据集和它的划分?

    对于模型来说,其在训练集上面的误差我们称之为 训练误差 或者 经验误差,而在测试集上的误差称之为 测试误差

    因为测试集是用来测试学习器对新样本的学习能力,因此我们可以把测试误差作为 泛化误差 的近似(泛化误差:在新样本上的误差)。

    对于我们来说,我们更关心的是模型对于新样本的学习能力,即我们希望通过对已有样本的学习,尽可能的将所有潜在样本的普遍规律学到手,而如果模型对训练样本学的太好,则有可能把训练样本自身所具有的一些特点当做所有潜在样本的普遍特点,这时候我们就会出现 过拟合 的问题。

    因此在这里我们通常将已有的数据集划分为训练集和测试集两部分,其中训练集用来训练模型,而测试集则是用来评估模型对于新样本的判别能力。

    对于数据集的划分,我们通常要保证满足以下两个条件:

    1. 训练集和测试集的分布要与样本真实分布一致,即训练集和测试集都要保证是从样本真实分布中独立同分布采样而得;

    2. 训练集和测试集要互斥

    对于数据集的划分有三种方法:留出法,交叉验证法和自助法,下面挨个介绍


    ▶留出法

    留出法 是直接将数据集 D 划分为两个互斥的集合,其中一个集合作为训练集 S,另一个作为测试集 T

    我们需要注意的是在划分的时候要尽可能保证数据分布的一致性,即避免因数据划分过程引入额外的偏差而对最终结果产生影响。

    为了保证数据分布的一致性,通常我们采用 分层采样 的方式来对数据进行采样。

    假设我们的数据中有 m1 个正样本,有 m2 个负样本,而 S 占 D 的比例为 p,那么 T 占D 的比例即为 1−p,我们可以通过在 m1 个正样本中采 m1∗p 个样本作为训练集中的正样本,通过在 m2 个负样本中采 m2∗p 个样本作为训练集中的负样本,其余的作为测试集中的样本。

    注意:样本的不同划分方式会导致模型评估的相应结果也会有差别

    例如:

    如果我们把正样本进行了排序,那么在排序后的样本中采样与未排序的样本采样得到的结果会有一些不同

    因此通常我们都会进行多次随机划分、重复进行实验评估后取平均值作为留出法的评估结果。


    缺点:

    对于留出法,如果我们的对数据集 D 划分后,训练集 S 中的样本很多,接近于 D,其训练出来的模型与 D 本身训练出来的模型可能很接近,但是由于 T 比较小,这时候可能会导致评估结果不够准确稳定;

    如果 S 样本很少,又会使得训练出来的样本与 D 所训练出来的样本相差很大。

    通常,会将 D 中大约 2/3~4/5 的样本作为训练集,其余的作为测试集


    ▶交叉验证法

    k 折交叉验证:通常将数据集 D 分为 k 份,其中的 k-1 份作为训练集,剩余的那一份作为测试集,这样就可以获得 k 组训练/测试集,可以进行 k 次训练与测试,最终返回的是 k 个测试结果的均值。

    这里数据集的划分依然是依据 分层采样 的方式来进行。

    对于交叉验证法,其 k 值的选取往往决定了评估结果的稳定性和保真性,通常 k 值选取 10

    与留出法类似,通常我们会进行多次划分得到多个 k 折交叉验证,最终的评估结果是这多次交叉验证的平均值。

    当 k=1的时候,我们称之为留一法

    我们可以发现留一法并不需要多次划分,其划分方式只有一种

    因为留一法中的 S 与 D 很接近,所以 S 所训练出来的模型应该与 D 所训练出来的模型很接近,因此通常留一法得到的结果是比较准确的

    但是当数据集很大的时候,留一法的运算成本将会非常的高以至于无法忍受。


    ▶自助法

    留出法与交叉验证法都是使用 分层采样 的方式进行数据采样与划分,而自助法则是使用 有放回重复采样 的方式进行数据采样

    自助法:我们每次从数据集D中取一个样本作为训练集中的元素,然后把该样本放回,重复该行为 m 次,这样我们就可以得到大小为m的训练集,在这里面有的样本重复出现,有的样本则没有出现过,我们把那些没有出现过的样本作为测试集。

    进行这样采样的原因是因为在D中约有 36.8% 的数据没有在训练集中出现过(取极限后求得)

    这种方法对于那些数据集小、难以有效划分训练/测试集时很有用,但是由于该方法改变了数据的初始分布导致会引入估计偏差。

    随机森林算法中用到的就是自助法,具体可看随机森林篇:大话系列 | 集成算法之随机森林


    ▶总结一下

    对于数据量充足的时候,通常采用 留出法 或者 k折交叉验证法 来进行训练/测试集的划分;

    对于数据集小且难以有效划分训练/测试集时使用 自助法

    对于数据集小且可有效划分的时候最好使用 留一法 来进行划分,因为这种方法最为准确 最常用』

    当数据集划分完毕后,就需要建立相关模型,具体的模型算法可选的就很多了,前面都有介绍过。

    模型建立好之后我们需要对模型的的泛化能力进行衡量,而衡量模型的评价标准有:错误率与精准率、查准率、查全率与F1、ROC与AUC、错误率和代价曲线 等等

    下篇将会分享《模型评估指标》

    ◆ ◆ ◆  ◆ ◆麟哥新书已经在当当上架了,我写了本书:《拿下Offer-数据分析师求职面试指南》,目前当当正在举行活动,大家可以用相当于原价5折的预购价格购买,还是非常划算的:
    
    
    
    数据森麟公众号的交流群已经建立,许多小伙伴已经加入其中,感谢大家的支持。大家可以在群里交流关于数据分析&数据挖掘的相关内容,还没有加入的小伙伴可以扫描下方管理员二维码,进群前一定要关注公众号奥,关注后让管理员帮忙拉进群,期待大家的加入。
    管理员二维码:
    猜你喜欢
    ● 卧槽!原来爬取B站弹幕这么简单● 厉害了!麟哥新书登顶京东销量排行榜!● 笑死人不偿命的知乎沙雕问题排行榜
    ● 用Python扒出B站那些“惊为天人”的阿婆主!● 你相信逛B站也能学编程吗
    
    展开全文
  • 基于损失因子和数据集划分的协同过滤推荐算法.docx基于损失因子和数据集划分的协同过滤推荐算法.docx基于损失因子和数据集划分的协同过滤推荐算法.docx基于损失因子和数据集划分的协同过滤推荐算法.docx基于损失因子...
  • 但是python对文件和文件夹极其强大的操作性帮助我们解决了数据集划分的问题,本篇博客我们将开源数据集划分的代码,让我们学习如何使用python划分自己的数据集。 先简单讲解一下代码的使用方法,在博客的最后会附上...
  • 数据分析-数据集划分-交叉验证

    千次阅读 2022-03-21 20:50:57
    目录 交叉验证 k折交叉验证(k-fold cross validation) 分层k折交叉验证(stratified cross validation) Sklearn的实现 k折交叉分类器 分层k折交叉分类器 打乱数据集后再划分 模型验证 交叉验证预测 学习曲线 ...
  • 数据集划分是炼丹的准备工作。附上一次性划分的步骤。 Step1: 获取所有文件名 ls >a.txt 注意在生成的txt里将其本名删去。 Step2:按照比例划分 这里使用的是train:test:val = 7:2:1 的比例划分。直接用mod10...
  • #划分数据集flower_data,数据集划分到flower_datas中,训练集:验证集:测试集比例为6:2:2 import os import random from shutil import copy2 # 源文件路径 file_path = r"D:/other/ClassicalModel/other/...
  • CWRU轴承数据集故障诊断博客编写背景数据集读取数据集划分训练与测试代码 博客编写背景 本次博客是对深度学在机械设备的故障诊断(模式识别)领域的入门级的基础教程,主要是专门针对CWRU滚动轴承故障数据集的数据读取...
  • yolov5官方使用测试的数据集是COCO数据集,在使用coco128(取coco数据集前128张图片)数据集正常训练、测试后,准备改用 PASCAL VOC 数据集进行训练测试,将其中处理方式记录如此,便日后回顾。 VOC数据集介绍 VOC...
  • sklearn实现数据集划分

    千次阅读 2020-09-05 18:39:32
    1.留出法可用sklearn包ShuffleSplit和train_test_split实现2.ShuffleSplit可以实现多次随机划分,train_test_split只能实现一次...
  • 将自己的数据集划分为py-faster-rcnn所需的集(训练集、验证集、训练验证集、测试集),读取xml文件生成对应的txt文件。
  • 数据集划分,Oxford Flower102花卉分类数据集,分为训练集、测试集 Oxford Flower102数据集链接:https://www.robots.ox.ac.uk/~vgg/data/flowers/102/ 参考:https://www.jianshu.com/p/71d4a8c1b68b 1、Flower102...
  • 划分数据集是指全部的数据集,之后划分成train占8份,test占两份, 划分之后是每一类下面都有一个train和test文件 首先,新建一个空文件,子目录下把每一类的文件夹复制,新建代码python import os # i 用来计算...
  • yolov5训练数据集划分

    千次阅读 2021-04-11 21:16:13
    yolov5训练数据集划分 按照默认8:1:1划分训练集,测试集,验证集。 txt文件出现在imageset文件夹。 import os import random trainval_percent = 0.9 train_percent = 0.9 xmlfilepath = 'data/Annotations' ...
  • 参考了别人的,但找不到原博文了...将数据集划分为训练集,验证集,测试集 """ import os import random import shutil # 创建保存图像的文件夹 def makedir(new_dir): if not os.path.exists(new_dir): os.makedirs
  • 数据集划分的方法介绍

    千次阅读 2020-05-12 15:52:54
    1.Hold-out:直接将数据集划分为两个互斥的集合, 分别作为训练集和测试集, 其中训练集一般是2/3 ~ 4/5 该方法两个注意点: 训练集和测试集的划分要尽可能的保持数据分布一致性,如分层采样(stratified sampling...
  • 文章目录1 导包2 API介绍3 示例一3.1 构造数据3.2 数据划分4 示例二(鸢尾花数据集实战)4.1 数据准备4.2 查看数据4.3 数据划分 1 导包 from sklearn.model_selection import train_test_split 2 API介绍 klearn....
  • 数据集划分方法

    千次阅读 2019-02-26 13:02:52
    1 模型评估方法 在现实任务中,往往有很多模型可供选择,一般我们是通过对候选模型的泛化误差进行估计,选择泛化误差最小的...假设学习任务中的有一个包含mmm个样本的数据集D={(x1,y1),(x2,y2),⋯&ThinS...
  • 数据集划分——训练集、测试集、验证集按照7:1:2 前面我对乳腺超声图像数据库进行数据增强,得到: 然后对数据集进行划分,按照训练集、测试集、验证集7:1:2的比例。 代码: import os import random import ...
  • 建议用户将数据集按照如下方式进行组织,原图均放在同一目录,如JPEGImages,标注文件(如annotations.json)放在与JPEGImages所在目录同级目录下,示例结构如下 MyDataset/ # 实例分割数据集根目录 |--JPEGImages/ ...
  • python机器学习之sklearn数据集划分

    千次阅读 2020-09-15 12:22:49
    1.sklearn数据集 sklearn中自带了一些数据集供我们使用 其中datasets.load_()数据集较小,已经随sklearn下载到我们的电脑中,而datasets.fetch_()数据集较大,需要下载 返回的数据类型 例如: from sklearn....
  • UCF101数据集划分训练集和测试集

    千次阅读 2020-09-21 21:37:16
    """ After extracting the RAR, we run this to move all the files into the appropriate train/test folders. Should only run this file once! """ import os from os.path import exists import shutil ...
  • 有两个文件夹images和labels,分别存放着图片和标注好的yolo格式检测数据标签,如何划分为train和val两个文件夹,且train和val两个文件夹下分别有划分好比例的images和labels文件夹,其中images和labels文件夹下分别...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 294,457
精华内容 117,782
关键字:

数据集划分

友情链接: mdio_com.zip