【机器学习入门系列】第三章 数据清理

欢迎来到我们的7部分数据科学和应用机器学习迷你课程!

在上一章中,您了解了“了解”数据的基本数据可视化。更重要的是,我们解释了要查找的洞察类型。

基于这些见解,是时候通过数据清理将我们的数据集变为尖端形状  。

数据清理的步骤和技术将因数据集而异。因此,单个指南无法涵盖  您可能遇到的所有内容

但是,本指南提供了可靠的起始框架  ,每次都可以使用。我们介绍了常见的步骤,例如修复结构错误,处理缺失数据和过滤观察。

所以,让我们穿上我们的靴子,清理这个烂摊子!

 

更好的数据 > 优秀的算法

数据清理是每个人都做的事情,但没有人真正谈论过。当然,它不是机器学习的“最性感”部分。不,没有隐藏的技巧和秘密可以揭开。

但是,正确的数据清理可能会影响您的项目。专业数据科学家通常将大部分时间花在这一步上。

为什么?由于机器学习的简单事实:

更好的数据优于更高级的算法。

换句话说......垃圾会让你变得垃圾。即使您忘记了本课程的其他内容,请记住这一点。

事实上,如果您有一个正确清理的数据集,即使是简单的算法也可以从数据中获得令人印象深刻的见解!

显然,不同类型的数据需要不同类型的清洁。但是,本课程中提出的系统方法始终可以作为一个良好的起点。

是时候把垃圾拿走了!

是时候把垃圾拿走了!

 

删除不需要的观察

数据清理的第一步是从数据集中删除不需要的观察。

这包括重复  或  不相关的观察。

这个小镇不够大。

这个小镇不够大。

重复观察

数据收集过程中最常出现重复观察,例如:

  • 合并来自多个地方的数据集
  • 抓数据
  • 从客户/其他部门接收数据

它本身并不意味着。

它本身并不意味着。

无关的观察

不相关的观察结果是那些实际上不符合您试图解决的具体问题的观察结果

  • 例如,如果您只为单户住宅建造模型,那么您不希望在那里观察公寓。
  • 这也是从探索性分析中查看图表的好时机。您可以查看分类功能的分布图,以查看是否存在不应存在的任何类。
  • 在工程特征之前检查不相关的观察可以为您节省许多麻烦。

 

修复结构错误

数据清理下的下一个桶涉及修复结构错误。

结构误差是在测量,数据传输或其他类型的“差管理”期间出现的结构误差

例如,您可以检查拼写错误不一致的大小写。这主要是对分类功能的关注,您可以查看您的条形图以进行检查。

这是一个例子:

之前的结构错误

如你看到的:

  • 'composition'与'Composition'相同
  • '沥青'应该是'沥青'
  • 'shake-shingle'应该是'Shake Shingle'
  • “沥青,摇晃”也可能只是“Shake Shingle”

在我们替换拼写错误和不一致的大小写之后,类分发变得更加清晰:

之后的结构错误

最后,检查错误标记的类,即应该真正相同的单独类。

  • 例如,如果“N / A”和“不适用”显示为两个单独的类,则应将它们组合在一起。
  • 例如,'IT'和'information_technology'应该是一个单一的类。

 

过滤不需要的异常值

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

通常,如果您有合理的理由删除异常值,它将有助于您的模型的性能。

然而,在被证明有罪之前,异常值是  无辜的。 你永远不应该因为它是一个“大数字”而删除异常值。这个大数字可以为您的模型提供非常丰富的信息。

我们不能强调这一点:你必须有充分的理由去除异常值,例如不太可能是真实数据的可疑测量。

他有一点意见。

他有一点意见。

 

处理丢失的数据

在应用机器学习中,丢失数据是一个看似棘手的问题。

首先,为了清楚起见,您不能简单地忽略数据集中的缺失值。由于大多数算法不接受缺失值的非常实际的原因,您必须以某种方式处理它们。

“常识”在这里并不明智

不幸的是,根据我们的经验,最常用的两种处理丢失数据的方法实际上很糟糕。

他们是:

  1. 删除缺少值的观察
  2. 归咎于基于其他意见的缺失值

删除缺失值是次优的,因为当您删除观察值时,会丢弃信息。

  • 价值缺失的事实本身可能提供信息。
  • 另外,在现实世界中,即使缺少某些功能,您也经常需要对新数据进行预测!

输入缺失值是次优的,因为最初缺少该值,但是您将其填入,无论您的插补方法多么复杂,这都会导致信息丢失。

  • 同样,“缺失”本身几乎总是提供信息,您应该告诉您的算法是否缺少值。
  • 即使你构建了一个模型来估算你的价值观,你也不会添加任何真实的信息。您只是在强化其他功能已经提供的模式。

缺少数据拼图

缺少数据就像错过了一块拼图。如果你放弃它,那就像假装拼图插槽不存在。如果你把它归咎于它,那就像试图从拼图中的其他地方挤出一块。

简而言之,您应该始终告诉您的算法缺少值,因为缺失是有益的

那你怎么能这样做?

标签缺少。

关键是告诉您的算法该值最初缺失。

缺少分类数据

处理分类功能缺失数据的最佳方法是将它们标记为“丢失”!

  • 您实际上是为该功能添加了一个新类
  • 这告诉算法该值丢失了。
  • 这也绕过了没有缺失值的技术要求。

缺少数字数据

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

  1. 用缺失指标变量标记观察结果。
  2. 然后,用0填充原始缺失值,以满足无缺失值的技术要求。

通过使用这种标记和填充技术,您基本上允许算法估计缺失的最佳常量,而不是仅用均值填充它。

 

章节测验

正确完成数据清理步骤后,您将拥有一个强大的数据集,可以避免许多最常见的陷阱。

这真的可以帮助你摆脱困境,所以请不要急于这一步。

 


这是一个快速测验,检查你是否掌握了所有东西:

  • 从一开始就要删除哪两种不需要的观察?
  • 需要注意哪3种结构错误?
  • 你应该如何处理缺失的数据?
  • 为什么丢弃数据缺失或丢失缺失值的观测结果不是最理想的?

 

原文:https://elitedatascience.com/data-cleaning

 

 

 

 

 

 

 

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值