更好的数据和更高级的算法,在数据清理中哪个更重要?

在上一章中,咱们学习了如何对一个数据集进行探索性分析,也阐述了常见的要从数据集中获取的信息。算法


基于这些信息,接下来就是经过数据清理,让咱们的数据集达到最佳状态了。数据清理也是搭建任何一种推荐系统必经的步骤之一。

数据清理的步骤和技术因数据集而异。咱们没有办法在一篇文章中穷尽全部会出现的问题。

这篇文章介绍了数据清理的一些常见步骤,例如修复结构性错误,处理丢失的数据以及过滤观察值。

更好的数据>更高级的算法

数据清理是每一个人都要作的事情之一,但不多有人专门讨论这件事,缘由很简单,这不是机器学习的“最性感”的部分。并且,没有什么可供挖掘的隐藏技巧和秘密。

但事实上,数据清理可能会加快或中断整个项目进程。专业的数据科学家一般在此步骤上花费很大一部分时间。他们为何要这么作呢?机器学习中存在一个很简单的事实:

更好的数据赛过更高级的算法。

换句话说,输入垃圾数据,获得的也是垃圾结果。

若是咱们的数据集通过了正确的清洗,那么即便是简单的算法也能够从中获得深入的启发!

不一样类型的数据须要不一样的清洗方法。可是,本文中阐述的系统方法能够做为一个很好的学习起点。

微信



删除不须要的观测结果

数据清理的第一步是从数据集中删除不须要的观测结果,包括重复或不相关的观测结果。
网络

重复的观测结果

重复的观测结果最多见于数据收集期间,例如:运维

  • 合并多个来源的数据集时
  • 抓取数据时
  • 从客户/其余部门接入数据时



不相关的观测结果

不相关的观测结果实际上与咱们要解决的特定问题不符。机器学习

  • 例如,若是咱们仅为单户住宅构建模型,则不但愿对其中的公寓也进行观测。
  • 这时候,咱们也能够在上一步的探索性分析中判断出来。咱们能够查看类别特征的分布图,以查看是否有不相关的类存在。
  • 在作工特征工程以前,咱们也能够检查是否存在不相关的观察结果。

修复结构性错误post

结构性错误是在测量、数据传输或其余的“不良内部管理”过程当中出现的错误。

例如,咱们能够检查拼写错误或大小写不一致的问题。这些主要和分类特征有关。

这是一个例子:

性能

从上图中能够看到:学习

  • “Composition”与“composition”相同
  • “asphalt”应为“Asphalt”
  • “ shake-shingle”应为“ Shake Shingle”
  • “asphalt,shake-shingle”也可能只是“Shake Shingle”


替换错字和大小写不一致后,整个分类变得更加整洁:

ui

最后,检查标签错误的类,即实际上应该相同的类。人工智能

  • 例如:若是“N/A”和“Not Applicable”显示为两个单独的类,则应将其合并。
  • 例如:“ IT”和“ information_technology”应该是同一个类。

过滤不须要的异常值

异常值可能会致使某些模型出现问题。例如,线性回归模型对异常值的鲁棒性不如决策树模型。

一般,若是咱们有合理的理由要删除异常值,则能够提升模型的性能。

可是,在证实异常值无用以前,咱们永远不要仅仅由于它是一个“大数字”就删除它,由于这个数字可能对咱们的模型有很大帮助。

这一点很重要:在删除异常值以前必需要有充分的理由,例如不是真实数据的可疑度量。


处理缺失的数据

在机器学习应用过程当中,数据缺失看上去是一个很棘手的问题。

为了清楚起见,咱们不能简单地忽略数据集中的缺失值。因为大多数算法都不接受缺失值,所以,咱们必须经过某种方式来处理这一点。

“常识”在这里并不灵验

根据咱们的经验,处理丢失数据的两种最经常使用的推荐方法实际上都不怎么有用。

这两种方法分别是:

1.删​​除具备缺失值的观测值

2.根据其余观察结果估算缺失值

删除缺失值不是最佳选择,由于删除观察值时会删除信息。

  • 缺失值自己可能会提供一些参考
  • 在现实世界中,即便缺乏某些功能,咱们也常常须要对新数据进行预测

插入缺失值也不是最佳选择,由于该值最初是缺失的,但若是咱们将其填充,不管插入缺失值的方法多么精确得当,老是会致使信息丢失。

  • 一样,“遗漏”自己几乎老是有用的,咱们应该告诉算法是否存在缺乏值。
  • 即便咱们从新创建了模型来估算值,也没有添加任何实际信息——这样作仅仅在加强其余功能已经提供的模式。

丢失数据就像丢失了一块拼图。若是将其放下,就好像在伪装不存在拼图槽;若是进行估算,那就像是试图从拼图上的其余地方挤一起进去。

简而言之,自始至终,咱们都应该告诉算法,缺乏值是由于缺乏可提供信息。

具体怎么作呢?告诉算法该值一开始就已丢失。



缺乏分类特征的数据

处理分类特征缺失的数据的最佳方法是简单地将其标记为“缺失”!

  • 这样作实质上是在为该特征添加新的类。
  • 告诉算法缺乏该值。
  • 知足了技术需求,即要求没有任何缺失值。

缺乏数字数据

对于缺乏的数字数据,应标记并填充值。

1.使用缺失的指示变量标记观察结果。

2.为了知足没有任何缺失值的技术需求,用0填充原始丢失值。

经过标记和填充,从本质上讲,咱们可让该算法估算缺失的最佳常数,而不只仅是用均值填充。

原文连接:elitedatascience.com/data-cleani…

相关阅读:

用于推荐系统评估的概念与指标

推荐系统的工做流程

白话推荐系统

想要了解推荐系统?看这里!(2)——神经网络方法

想要了解推荐系统?看这里!(1)——协同过滤与奇异值分解

AutoML如何实现智能推荐系统的自动上线和运维?

入门推荐系统,你不该该错过的知识清单

如欲申请产品试用,欢迎添加先荐小助手微信号(ID:recsysfc)

本帐号为第四范式智能推荐产品先荐的官方帐号。帐号立足于计算机领域,特别是人工智能相关的前沿研究,旨在把更多与人工智能相关的知识分享给公众,从专业的角度促进公众对人工智能的理解;同时也但愿为人工智能相关人员提供一个讨论、交流、学习的开放平台,从而早日让每一个人都享受到人工智能创造的价值。

相关文章
相关标签/搜索