ML工作流程(第4部分) - 完整性检查和数据分割

本译文自EROGOLhttp://www.erogol.com 上发表的 ML Work-Flow (Part 4) – Sanity Checks and Data Splitting ,文中版权、图像代码的数据均归作者所有。为了本土化,本文略作修改。

完整性检查

我们现在比特征提取领先一步,并且提取给定的原始数据的统计上重要的(协变量)表示。在特征提取之后,我们需要做的第一件事就是检查新的表示的值。通常,人们会认为这是浪费时间,不会去做这个事情。不过,我认为这是一个严重的错误。正如我之前所说的那样,单个NULL值或倾斜表示可能会在最后让人非常的头疼,并且会使你处于非常模糊的状态。

我们开始讨论。我在这里列出我的合理的检查步骤;

检查NULL值并探究为什么它们是NULL - NULL值是信息,即使他们破坏了你ML管道。它们是前面阶段引发的问题的指标。因此,在更深入地研究问题之前,这些NULL值能够帮助你提前解决这些问题。

如果你在特征抽取后观察到NULL值,则需要考虑一些常见问题;

  • 美联储数据不符合特征提取算法的预期格式。顺便说一下,特定的特征提取方法需要对原始数据进行一定的常规化、标准化、缩放程序或者可能需要通过离散化,分类等来更改值类型。我将在Feature Preprocessing阶段讨论这些特定的过程,但是之前有一些案例,但是还是建议:如果你的数据格式没有问题,那么可以考虑使用不同的代码来提取特征,并将结果与第一个结果进行比较。如果有错误,而且不一致,那就用第三个代码纠正错误。一定要确认算法是正确适用的。如果不是这样,每次运行你都可能观察到不同的值,这是合理的。在这种情况下,最好以某种方式可视化这些特征,并尝试看到预期的语义。例如,对于计算机视觉环境下的特征学习方法,显示学习过滤器并证明视觉正确性。对于其他领域,通过社区进行研究,并找到一个方法来做到这一点。
  • 你的ETL工作流程是错误的。ETL是通过一些软件或简单的代码流合并来自不同资源的数据的过程。这个过程应该适应数据资源的内部变化。例如,如果合并来自两个不同数据库的数据,则表中的结构更改可能会使你的ETL过程崩溃,并导致新的NULL值。这对我来说也是一个非常频繁的经历。因此,ETL需要能够正确的处理或者至少应该记录这样的问题。
  • 零分 检查值的比例。最大值和最小值、框图、散点图、平均值 - 中值差异对于指吃偏差值是非常有用的。绘制这些并观察它们是否合理。如果有觉得哪些地方错误的,那就研究它。这可能需要一定程度的专业知识。 检查每个维度的唯一值的数量。 这听起来很愚蠢,但相信我,这是一个非常有用的检查值的方法。即使你的数据是分类的、名义上的或连续的,总是非常有用。绘制一个条形图,描绘每个数据维度的不同值的数量。数据分割好的,我们纠正了特征提取后数据表示的正确性。现在是时候将数据分割成测试,训练和可选的外展和验证集。
  • Train-Set:用这个训练你的模型。
  • Validation-Set:使用特定的算法,如神经网络,更好地使用单独的Validation-Set以便查看训练周期中的泛化性能。由于这些算法很可能过度拟合,所以使用训练数据作为训练时间的唯一度量可能会误导到极端的过度拟合。相反,使用每个迭代性能的Validation-Set,并停止训练和验证值在某个级别分散。Validation-Set的另一个用例是在交叉验证不可扩展的情况下用于性能测量。如果你使用低预算系统的BigData,那么简单的交叉验证需要几天或几周的时间。因此,对于简单的实验,如果只是第一次进行简单的设置或者更改,那么请使用Validation-Set。当你得到这些价值并作出最初的决定后,你就使用Validation-Set和验证数据混合的交叉验证。我推荐这么做。
  • Test-Set:在Train-Set和Validation-Set之后完成模型之后,应该使用它。根据训练和验证步骤设置模型的所有参数后,Validation-Set会测量性能。由于你重复循环训练和验证,所以你的模型不仅可能过度训练数据,而且还会验证数据。从这个角度来说,Validation-Set显示了你的理性过度的水平。这就是为什么大部分Kaggle比赛只用最终的表现来模拟我们Validation-Set的概念。
  • Held-Out Set:这可能是其他集合的组合。但是,最好的办法是使用纯粹独立的数据,除非数据不足。最后,在你说“我完成了!这是我的杰作“。因此,你在这个集合上测量你的模型的最终得分,这是现实世界场景中最好的性能近似。既然你之前没有触及过,而且你没有通过这个集合重申你的模型,那么你的模型就没有看到Held-Out集合的偏见。因此,这是你的报告的最终绩效衡量标准。

我相信很多人对我提出的数据分割方案不太情愿,他们会把这个粒度级别看作简单的训练,测试分割+交叉验证方案。但是,我向他们保证,特别是在这个行业里,这个阵型是对抗理性过度合理化的最佳选择。通过这些论点的特性,我也相信目前数据分裂的概念是学术界的一个重要关键。我们接触到所谓的最先进的方法,以非常精确的数据和合理的过度拟合的方法来说明非常高的准确度。但就这个事实而言,当我们将这些方法应用于实时问题时,值就会变得太多而变得不真实。是,模型可能会过度适合给定的列车数据,但是只使用有限的数据集,并且有一定的训练和验证周期,也会使你错误地理解给定的问题。理性过度拟合的一个例子是神经网络结构图像网竞赛。如果你看看论文或者每年的方法,你会发现人们仍然使用亚历克斯网络(Image-Net的第一个重要的深度学习成就)相同的拓扑结构,并且宣布0.5%的提高,而且方法上的改进很少或者很少。顺便说一句,我们有一个深度学习社区过度适合Image-Net的巨大文献。我的解决方案是使用单独的数据集,通过去年数据集的训练模型对每年的比赛进行排名。在我看来,对于这种过度拟合,这将是一个更强大的调整,具有更多的注释复杂性。

原文链接:http://www.erogol.com/ml-work-flow-part-4-sanity-checks-data-spliting/

原文作者:EROGOL

编辑于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏数据派THU

独家 | 教你用Q学习算法训练神经网络玩游戏(附源码)

原文标题:Teaching a NeuralNetwork to play a game using Q-learning 作者:Soren D 翻译:杨金鸿 ...

2438
来自专栏机器之心

教程 | 5种快速易用的Python Matplotlib数据可视化方法

选自towardsdatascience 作者:George Seif 机器之心编译 参与:刘晓坤、思源 数据可视化是数据科学家工作的重要部分。在项目的早期...

3446
来自专栏数据派THU

独家 | 一文读懂TensorFlow(附代码、学习资料)

人工智能、机器学习和深度学习 在介绍TensorFlow(以下简称为TF)之前,我们首先了解一下相关背景。 TF是一种机器学习框架,而机器学习经常和人工智能,...

30310
来自专栏量子位

有笔记本就能玩的体感游戏!TensorFlow.js实现体感格斗教程

小时候的你在游戏中搓着手柄,在现实中是否也会模仿这《拳皇》的动作?用身体控制游戏角色的体感游戏很早就已出现,但需要体感手柄(Wii)或体感摄像头(微软Kinec...

833
来自专栏AI研习社

如何用 TensorFlow 实现基于 LSTM 的文本分类(附源码)

引言 学习一段时间的tensor flow之后,想找个项目试试手,然后想起了之前在看Theano教程中的一个文本分类的实例,这个星期就用tensorflow...

4987
来自专栏每日一篇技术文章

OpengL ES _ 入门_03

好,记住这个过程,任务一就完成了。接下来的任务就是对每个步骤详细理解,加深记忆!!

672
来自专栏Coding迪斯尼

DeepDream:使用深度学习再造毕加索抽象风格艺术画

毕加索是近代最成功的艺术家,是抽象画派的开山师祖,而且凭借那些惊悚的抽象线条创造出来的画作非常挣钱。毕加索这种抽象创造能力能不能用计算机实现呢,随着深度学习的进...

672
来自专栏我的技术专栏

浅谈 GPU图形固定渲染管线

图形渲染管道被认为是实时图形渲染的核心,简称为管道。管道的主要功能是由给定的虚拟摄像机、三维物体、灯源、光照模型、纹理贴图或其他来产生或渲染一个二维图像。由此可...

1917
来自专栏Tencentcloud

交互式数字作品教程——专为艺术家的你!

这篇文章不是对循环神经网络的综合概述。它适用于没有任何机器学习背景的读者。其目的是向艺术家和设计师展示如何使用预先训练的神经网络——使用简单的Javascrip...

2176
来自专栏量子位

探索LSTM:基本概念到内部结构

安妮 若朴 编译整理 量子位 出品 | 公众号 QbitAI 作者简介:Edwin Chen,在MIT研究数学/语言学,在微软研究院研究语音识别,在Clariu...

3484

扫码关注云+社区