为什么我们要关心数据预处理?

尽管对数据问题及其后果的认识,数据预处理在分析世界中得到的关注相对较少,而侧重于建模和预测。但作为一名数据科学家,大部分时间都是在这里度过的吗?

《福布斯》杂志称,数据科学家大部分时间都在清理和整理数据。

为什么我们要关心数据预处理?

如果你做了一些数据分析,你会同意以上的调查结果。我们都可以通过向机器学习模型发送原始数据和向机器学习模型发送干净数据来看到输出的差异。

数据科学家关注管道中的所有阶段。然而,在达到机器学习建模阶段之前,许多数据错误可能会引起科学家需要注意的问题。数据错误和问题可能会影响分析的有效性、可重复性,从而影响分析的质量。

为什么我们要关心数据预处理?

为什么我们更关心数据预处理?

真实世界的数据一般是:

  • 噪声:包含错误和异常值。
  • 不一致:包含不一致的值。
  • 不完整:缺少的值、字段是过时的或冗余的,或者不适合模型处理的数据。

例如:

在数据采集和预处理的任何阶段都可能出现数据错误,这可能会影响结果,导致统计解释和结论的错误。

最重要的目标是最小化垃圾输入、垃圾输出(GIGO),最小化进入模型的垃圾,从而最小化模型输出的垃圾数量。

因此,数据预处理在数据采集到数据分析之间架起了桥梁。为业务目标和数据预处理的可能步骤提供关键的重要性可以减轻我们的大多数问题。

为什么我们要关心数据预处理?

数据预处理思维导图

数据预处理步骤

1、数据清理:

  • 处理缺失值
  • 识别错误分类
  • 识别异常值
  • 标志变量
  • 将分类变量转换为数值变量
  • Binning数字变量
  • 添加索引字段
  • 删除无用的变量
  • 不应删除的变量
  • 过滤ID字段

2. 数据集成:

  • 组合来自多个资源的数据
  • 删除重复的记录

3. 数据转换:

  • 达到正常

4. 数据缩减:

  • 用于数据削减的方法

在我们开始分析之前选择的工具:

中心测度:均值,中位数和模式。

分布测度:范围、方差、标准差(SD)、四分位数范围(IQR)、平均绝对偏差(包含极端值的情况,因为SD对离群值敏感)。

转换工具:归一化(最小-最大值归一化)、Z-score标准化、十进制缩放、偏度和峰度。

分类变量与数值变量的差异:

为什么我们要关心数据预处理?

分类与数值

数据清洗:

1.1处理缺失值:我们继续在具有大量字段的数据库中遇到缺失值问题。

处理缺失数据的一般策略如下:

  • 在分析的基础上用某个常数替换缺失值。
  • 用平均值(数值变量)或模式(类别变量)替换缺失值。
  • 用观察到的随机值替换缺失值。
  • 根据记录的特征,用估算值替换缺失值。

1.2识别错误分类:注意以下频率分布有什么奇怪的地方吗?

为什么我们要关心数据预处理?

其中两项记录与该品牌的分类不一致。为了与数据集的其余部分保持一致,与起源美国的记录应该标记为US,与起源法国的记录应该标记为欧洲。

1.3:识别异常值:异常值是与剩余数据趋势相反的极端值。离群值构成——数据输入中的错误,有时模型对离群值的存在很敏感,可能产生不可靠的结果。

为什么我们要关心数据预处理?

1.4标记变量:一些模型(如回归)需要数值输入。在这种情况下,分类值被转换为带有0或1的标志变量。

例如:If sex = female sex_flag = 0;如果性别=男性,则sex_flag = 1。

1.5将分类变量转换为数值变量并对其进行重新分类:有时我们可能需要使用多个数值变量将分类变量转换为数值变量。

例如:如果您拥有一个拥有50个状态的“State”字段,那么在这种情况下,我们可以创建一个具有相应区域编号的新变量“Region”。

为什么我们要关心数据预处理?

1.6绑定数值变量:有时候模型更喜欢分类输入而不是连续的数值输入。在这种情况下,我们将数字输入分为多个分区。

为什么我们要关心数据预处理?

1.7添加一个索引字段:在执行数据分析时,数据会被分割几次。使用索引字段有助于跟踪可重新创建的原始排序顺序。

1.8删除无用的变量:数据科学家可能希望删除对分析没有帮助的一元变量。一元变量是指所有数据都只有一个值的变量。

例如,一个列变量' Utilities ',包含整个数据集的值' AllPub '(所有公共实用程序)。

为什么我们要关心数据预处理?

1.9不应该被删除的变量:不幸的是,删除强相关变量是一个常见的建议。一些数据分析师可能会决定删除其中一个变量。但强烈建议我们应用PCA(主成分分析)。

1.10.Filtering ID字段: ID字段对我们的挖掘模型没有什么帮助。建议将它们过滤掉而不是删除,因为它们可能有助于区分类似的记录。

数据集成:

2.1结合多种资源的数据:数据集成结合了来自不同来源的数据,如数据库或平面文件。

为什么我们要关心数据预处理?

2.2删除重复记录:集成数据时发生的常见错误是重复记录的副本。重复记录会导致数据值过大,在这种情况下,只能保留一组数据。通过这样做,我们避免了数据的虚假表示。

数据转换:

3.1转换以实现正态性:一些数据挖掘算法要求变量是正态分布的。

普遍的误解是,Z - score标准化的变量遵循标准Z分布。不正确的!确实,z标准化数据的均值为0,标准差为1,但分布仍可能存在偏度。

为了使我们的数据“更加正态分布”,我们必须首先使它对称,这意味着消除偏度。为了消除偏度,我们对数据进行转换。

为什么我们要关心数据预处理?

原始数据与自然对数转换

虽然我们已经实现了对称,但有时我们还没有达到常态。为了检验正态性,我们构造了一个正态概率图,它将一个特定分布的分位数与标准正态分布的分位数相对应。

为什么我们要关心数据预处理?

数据缩减:

我们如何处理大量的数据集并希望找到变量之间的关系?是否有可能挖掘减少的数据集——这是否既有效又能产生相同的结果?当然,我们可以。

大量数据集的问题:

  • 对一个模型来说,太多的预测变量会不必要地使分析的解释复杂化。
  • 保留过多的变量可能会导致过度拟合。

解决这些问题最常用的方法之一是“降维”。此方法的目标是实现以下目标。

  • -减少预测项目的数量。
  • -确保这些预测项是独立的。
  • -为结果的解释提供一个框架。

结论:

这说明数据预处理是数据分析的关键组成部分。数据科学管道过程中的每个组件都对改进总体数据分析有独特的贡献。


分享到:


相關文章: