机器学习工作流程(第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 条评论
登录 后参与评论

相关文章

来自专栏QQ大数据团队的专栏

神盾推荐系统的超大规模参数学习探究

前言 本文介绍我们在推荐系统领域的大规模参数学习研究. 问题的起源是探究给每一个用户学习一个 ID 层级的表征, 而在千万量级的业务上, 学习如此特征将会牵涉...

7.2K9
来自专栏应兆康的专栏

开发集和测试集

1761
来自专栏新智元

斯坦福新深度学习系统 NoScope:视频对象检测快1000倍

【新智元导读】 斯坦福大学的新研究构建一个名为 NoScope 的深度学习视频对象检测系统,利用视频的局部性对 CNN 模型进行优化,相比当前性能最好的 YOL...

2815
来自专栏小小挖掘机

推荐系统遇上深度学习(二十四)--深度兴趣进化网络DIEN原理及实战!

在本系列的推荐系统遇上深度学习(十八)--探秘阿里之深度兴趣网络(DIN)浅析及实现中,我们介绍了阿里的深度兴趣网络(Deep Interest Network...

672
来自专栏机器之心

入门 | 极致的优化:智能手机是如何处理大型神经网络的

1466
来自专栏企鹅号快讯

静息态网络拓扑传输认知任务信息

来自美国罗格斯大学的Takuyalto等人在Nature communications期刊上发文,提出了一种新方法——信息传输映射——来验证假设:静息态功能网络...

1886
来自专栏大数据文摘

科技网红Siraj最新油管视频:如何用4分钟搭建神经网络

1638
来自专栏专知

【干货】深度学习实验流程及PyTorch提供的解决方案

【导读】近日,专知小组博士生huaiwen创作了一系列PyTorch实战教程,致力于介绍如何用PyTorch实践你的科研想法。今天推出其创作的第一篇《深度学习实...

3365
来自专栏FreeBuf

基于标记数据学习降低误报率的算法优化

无论是基于规则匹配的策略,还是基于复杂的安全分析模型,安全设备产生的告警都存在大量误报,这是一个相当普遍的问题。其中一个重要的原因是每个客户的应用场景和数据都多...

2508
来自专栏AI科技评论

谷歌机器学习白皮书全解析 43条黄金法则(三)

AI科技评论按:此白皮书为谷歌总结的机器学习(ML)最优实践方法,浓缩了其多年技术积累与经验,尤其是 YouTube、Google Play 和 Google+...

3778

扫码关注云+社区