机器学习工作流程(第2部分) - 数据预处理

本译文自EROGOLhttp://www.erogol.com 发表的 ML WORK-FLOW (Part2) - Data Preprocessing ,文中版权、图像代码的数据均归作者所有。为了本土化,本文略作修改。

尽量保持我承诺的日期。下面详细介绍了我提出的机器学习工作流程的第一步讨论,即数据预处理。

数据预处理是一个重要的步骤,其中的主要目的是提高原始数据质量,然后再深入研究技术问题。即使这个步骤涉及到非常简单的任务,但是如果没有这个,你可能会在最后看到错误的结果。

我也在工作流程中说过,数据预处理是ML以外的统计工作。也就是是说,数据预处理需要在做出任何可能的决定之前进行良好的数据推理和分析。这些组件不是ML课程的主题,而是一个统计数据。因此,如果你的目标是在整个ML上,不要忽视统计数据。

我们可以将数据预处理分成5个不同的部分;

  1. 数据集成
  2. 数据清理
  3. 数据转换
  4. 数据离散化
  5. 数据减少

数据集成

将来自不同来源的不同格式数据转换成之后要使用的统一格式。这些不同的来源可能被称为不同的数据库,甚至有可能是excel表。为了这一简单的想法,出现了几套不同的商业软件,即ETL(提取 - 转换 - 加载)工具。这些工具使您能够从单一视角到达不同的来源,并将数据与已定义的均一化数据流合并。令人遗憾的是,数据集成本身递归地包括其他标题。更明确地说,您的集成流程的任何子组件都可以包含我们在下面解释的更多数据预处理过程之一。

根据你的问题,在前期就定义数据格式是很重要的 。如果您对方便的格式不太确定,请去调查一下。否则,整合起来就很困难。特别是对于大量的数据以及下一步操作,将会耗费非常长的时间。

数据清理

填写数据,属性或类别标签中的缺失值。最简单的方法是使用其他行的均值或中值或相同类实例的均值或中值。(一般而言,中位值对异常值是稳健的)。也许另一种方法是像类标签一样训练一个预测缺失值的模型。

识别异常值并消除噪音。异常值和嘈杂的实例正在欺骗AdaBoost等许多ML算法。因此,您需要在进一步的处理之前纠正数据。甚至,在删除异常值后,需要再次重复所有预处理,例如,如果通过包含异常值来填充缺失的值,这些也是错误的,需要重新定义。

对于异常移除,一种常见的方法是对数据进行聚类并移除可怜的聚类。此外,您可以使用特定的异常值检测算法(如我的宝贝RSOM 或LOF)。另一个选择是适合回归模型,将数据对齐直到这个去除异常值。

正确的数据不一致。这需要一般的专业知识。您应该咨询您的业务合作伙伴或客户。

数据转换

标准化 - 缩放 - 标准化。根据您的进一步步骤(如特征提取),您可能需要将数据转换为不同的比例或域。这对于最终获得高质量的判别特征非常重要。特别是,如果你使用自动化的特征提取算法,一般来说,他们期望某些数据格式,然后又做不到。

构建新的属性。例如,如果您拥有客户的体重和身高值,那么添加BMI作为新的属性是非常合理的。这样的属性构造在领域中需要一定程度的经验和统计知识,但是却带来了很大的性能提升。

数据离散化

在某些情况下,对于特定的ML算法,连续值是有问题的。即使我试图用合理的算法来避免数据的离散化,特别是对于推理而言,离散化是非常必要的。

使用无监督的等分装箱。不用做任何详细的考虑就将数字数据划分成相同的大小或范围,

有监督的离散化。通过对值进行排序并通过在值之间观察类分布来放置值之间的铰链来使用类边界。您也可以使用熵度量来定义分区。现在,您定义了一些候选值分区集合,但是您可以选择具有最佳熵值的最佳信息增益值。我的选择是使用具有连续值的决策树从构建的树的节点定义值分区。

数据减少

减少实例的数量。有时候,你更喜欢使用数据的子集而不是整个数据。在这种情况下,抽样模式适合您。尽管有许多不同的抽样方法,但我更喜欢最天真的随机抽样。如果我需要更多强大的结果与多个子集,我更喜欢使用引导与替换。

减少属性的数量。 请不要试图用巧克力的消费情况来预测一个国家的诺贝尔奖的数量(这是真实的故事)。

虽然这需要一定程度的专业知识,但是你依然可以把不相关的数据从数据中删除。如果您犹豫不决,请等待特征选择。

作为一个侧面说明,ML中还有一个子议题,如何将复杂的问题分解一个个子问题,以便通过简单的子问题解决整个问题。

原文链接:http://www.erogol.com/ml-work-flow-part2-data-preprocessing/

原文作者:EROGOL

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏非著名程序员

GitHub 上最火,最热门的机器学习和人工智能,数据科学项目

最近,普拉纳夫 · 达尔(Pranav Dar)发文总结了 2018 年 2 月份 Github 上最火的 5 个数据科学和机器学习项目。

12330
来自专栏腾讯技术工程官方号的专栏

FPGA异构计算在图片处理上的应用以及HEVC算法原理介绍

作者介绍:chaningwang,2008年毕业于中国科学院研究生院,主攻FPGA高性能计算、FPGA图像处理等方向。 先后在华为、怡化公司从事FPGA开发...

47760
来自专栏GAN&CV

Rules of Machine Learning: Best Practices for ML Engineering

原文地址:https://developers.google.com/machine-learning/rules-of-ml/ 作者:Martin Zin...

16630
来自专栏机器之心

学界 | DeepMind等机构提出「图网络」:面向关系推理

该论文作者之一,DeepMind 研究科学家 Oriol Vinyals 表示,该研究的代码也将在近期公开。

19400
来自专栏新智元

神经网络自主编程第一步:可自动完成代码补全和修复(Github开源)

【新智元导读】 大家都知道神经网络目前还不能“编程”,但现在一项新的工作“Neual Complete”,朝着这个方向迈出了第一步。程序员 Pascal van...

53470
来自专栏PPV课数据科学社区

32页ppt干货|谷歌大规模机器学习:模型训练、特征工程和算法选择

谷歌机器学习:实际应用技巧 ? ? 什么是机器学习(ML)? 从概念上讲:给定(训练)数据,发现一些潜在的模式并将这个模式应用于新数据。 ML 的类型:监督学习...

628100
来自专栏AI科技评论

郑文琛:基于网络功能模块的图特征学习 | AI 研习社79期大讲堂

AI研习社按:图是一种常见的数据结构,可以被用于许多不同的预测任务。如何从图数据学习有效特征是个重要的问题。我们的新概念是从点和边出发,拓展到更高阶的子图结构(...

13440
来自专栏数据科学与人工智能

【数据可视化】数据可视化的正确操作方法

数据可视化,是一种用来将复杂信息数据清晰表述出来的强大有力的工具。通过可视化信息,我们的大脑可以更有效地合成和保留信息内容,增强对信息的理解。但是如果不正确数据...

27660
来自专栏吉浦迅科技

主流深度学习框架对比:必定有一款适合你!

现在机器学习逐渐成为行业热门,经过二十几年的发展,机器学习目前也有了十分广泛的应用,如:数据挖掘、计算机视觉、自然语言处理、生物特征识别、搜索引擎、医学诊断、D...

63890
来自专栏程序你好

什么是TensorFlow,TensorFlow教程

13220

扫码关注云+社区

领取腾讯云代金券