【机器学习】数据预处理探索综合指南

介绍

没有用于数据探索的快捷方式。如果你处于一种心态,机器学习可以让你远离每一次数据风暴,相信我,它不会。经过一段时间后,您会发现自己正在努力提高模型的准确性。在这种情况下,数据探索技术将为您解救。

我可以自信地说出这一点,因为我经历过很多这样的情况。

我已经成为一名业务分析专业人员已有近三年时间了。在我最初的日子里,我的一位导师建议我花大量时间进行探索和分析数据。遵循他的建议对我很有帮助。

我创建了本教程,以帮助您了解数据探索的基础技术。一如既往,我尽力以最简单的方式解释这些概念。为了更好地理解,我采用了一些例子来演示复杂的概念。

 

目录

  1. 数据探索和准备步骤
  2. 缺少价值待遇
    • 为什么需要缺价值处理?
    • 为什么数据缺少值?
    • 哪种方法可以治疗缺失值?
  3. 异常值检测与处理技术
    • 什么是异常值?
    • 什么类型的异常值?
    • 异常值的原因是什么?
    • 异常值对数据集的影响是什么?
    • 如何检测异常值?
    • 如何删除异常值?
  4. 特色工程的艺术
    • 什么是特色工程?
    • 特征工程的过程是什么?
    • 什么是变量转换?
    • 什么时候应该使用变量?
    • 变量转换的常用方法有哪些?
    • 什么是特征变量创建及其好处?

1.数据探索和准备步骤

请记住,输入的质量决定了输出的质量。所以,一旦你准备好你的业务假设,在这里花费大量的时间和精力是有意义的。根据我的个人估计,数据探索,清理和准备可能占您项目总时间的70%。

以下是了解,清理和准备数据以构建预测模型所涉及的步骤:

  1. 变量识别
  2. 单变量分析
  3. 双变量分析
  4. 缺少价值待遇
  5. 异常值处理
  6. 变量转换
  7. 变量创建

最后,在我们提出精炼模型之前,我们需要多次迭代步骤4 - 7。

现在让我们详细研究每个阶段: -

 

变量识别

首先,识别预测变量(输入)和目标(输出)变量。接下来,确定变量的数据类型和类别。

通过举个例子让我们更清楚地理解这一步骤。

示例: - 假设,我们想要预测学生是否会参加板球比赛(参见下面的数据集)。在这里,您需要识别预测变量,目标变量,变量的数据类型和变量类别。

下面,变量已在不同的类别中定义:

 

单变量分析

在这个阶段,我们逐个探索变量。执行单变量分析的方法将取决于变量类型是分类还是连续。让我们分别看一下分类和连续变量的这些方法和统计量度:

连续变量: -  在连续变量的情况下,我们需要了解变量的集中趋势和扩散。这些是使用各种统计指标可视化方法测量的,如下所示:

注意:  单变量分析还用于突出显示缺失值和异常值。在本系列的下一部分中,我们将介绍处理缺失值和异常值的方法。要了解有关这些方法的更多信息,您可以从Udacity中引用课程  描述性统计信息

分类变量: -对于分类变量,我们将使用频率表来了解每个类别的分布。我们还可以读作每个类别下的值的百分比。可以使用两个指标(每个类别的计数计数%)来衡量它。条形图可用作可视化。

 

双变量分析

双变量分析找出两个变量之间的关系。在这里,我们在预定义的显着性水平上寻找变量之间的关联和解除关联。我们可以对分类和连续变量的任何组合进行双变量分析。组合可以是:分类和分类,分类和连续以及连续和连续。在分析过程中使用不同的方法来处理这些组合。

让我们详细了解可能的组合:

连续和连续:在两个连续变量之间进行双变量分析时,我们应该看散点图。找出两个变量之间的关系是一种很好的方法。散点图的模式表明变量之间的关系。关系可以是线性的或非线性的。

散点图显示两个变量之间的关系,但不表示它们之间的关系强度。为了找到关系的强度,我们使用Correlation。相关性在-1和+1之间变化。

  • -1:完美的负线性相关
  • +1:完美的正线性相关和 
  • 0:没有相关性

可以使用以下公式导出相关性:

相关=协方差(X,Y)/ SQRT(Var(X)* Var(Y))

各种工具具有识别变量之间的相关性的功能或功能。在Excel中,函数CORREL()用于返回两个变量之间的相关性,SAS使用过程PROC CORR来识别相关性。这些函数返回Pearson Correlation值以标识两个变量之间的关系:

 

在上面的例子中,我们在两个变量X和Y之间有很好的正相关关系(0.65)。

 

分类和分类: 要查找两个分类变量之间的关系,我们可以使用以下方法:

  • 双向表:我们可以通过创建count和count%的双向表来开始分析关系。行表示一个变量的类别,列表示另一个变量的类别。我们显示行和列类别的每个组合中可用的观察数的计数或计数百分比。
  • 堆积柱形图:此方法更像是双向表的可视化形式。

  • 卡方检验:  该检验用于推导变量之间关系的统计显着性。此外,它还测试样本中的证据是否足够强大,以推广更大人口的关系。卡方是基于双向表中一个或多个类别中的预期频率和观察频率之间的差异。它返回具有自由度的计算卡方分布的概率。

概率为0:表示两个分类变量都是相关的

概率为1:它表明两个变量都是独立的。

概率小于0.05:表明变量之间的关系在95%置信度下是显着的。通过以下方法找到两个分类变量独立性检验的卡方检验统计量:

æ°æ®æ¢ç´¢ï¼æºå¹¿åºï¼åä¸åæ

其中O代表观察到的频率。E是零假设下的预期频率,并通过以下公式计算: 从前面的双向表中,产品类​​别1的小尺寸的预期计数是0.22。它是通过将产品类别(2)的列总数的大小(9)乘以行的总和,然后除以样本大小(81)得出的。这是针对每个细胞进行的程序。用于分析关系力量的统计指标是:
æ°æ®æ¢ç´¢ï¼æºå¹¿åºï¼åä¸åæ

  • Cramer的V代表名词分类变量
  • Mantel-Haenszed Chi-Square用于序数分类变量。

不同的数据科学语言和工具具有执行卡方检验的特定方法。在SAS中,我们可以使用Chisq  作为Proc freq的选项来执行此测试。

 

分类和连续:在探索分类变量和连续变量之间的关系时,我们可以绘制每个分类变量级别的箱形图。如果级别数量很少,则不会显示统计显着性。为了查看统计学意义,我们可以进行Z检验,T检验或ANOVA。

  • Z-Test / T-Test: -测试评估两组的平均值是否在统计学上彼此不同。

ztestformula

如果Z的概率很小,则两个平均值的差异更显着。T检验与Z检验非常相似,但是当两个类别的观察次数小于30时使用。

æ°æ®æ¢ç´¢ï¼ä¸å¡åæ

  • 方差分析: -评估两组以上的平均值是否有统计学差异。

示例:假设,我们要测试五种不同练习的效果。为此,我们招募了20名男性,并为4名男性(5组)分配了一种类型的运动。几周后记录它们的重量。我们需要弄清楚这些练习对它们的影响是否显着不同。这可以通过比较每组4个男性的5组的重量来完成。

到这里,我们已经理解了数据探索,变量识别,单变量和双变量分析的前三个阶段。我们还研究了各种统计和可视方法,以确定变量之间的关系。 

现在,我们将看看缺失值处理的方法。更重要的是,我们还将研究为什么在数据中出现缺失值以及为什么必须对其进行处理。

2.缺失值处理

 

为什么需要缺失值处理?

训练数据集中缺少数据会降低模型的功效/拟合,或者可能导致偏差模型,因为我们没有正确分析行为和与其他变量的关系。它可能导致错误的预测或分类。

æ°æ®æ¢ç´¢ï¼ç¼ºå¤±ä»·å¼è§

请注意上面显示的图像中缺少的值:在左侧方案中,我们没有处理缺失值。该数据集的推论是,男性打板球的几率高于女性。另一方面,如果你看第二张表,它显示了缺失值处理后的数据(基于性别),我们可以看到女性与男性相比,打板球的几率更高。

 

为什么我的数据有缺失值?

我们研究了数据集中缺失值处理的重要性。现在,让我们确定出现这些缺失值的原因。它们可能分两个阶段发生:

  1. 数据提取:提取过程可能存在问题。在这种情况下,我们应该用数据监护人仔细检查正确的数据。一些散列程序也可用于确保数据提取是正确的。数据提取阶段的错误通常很容易找到,也可以轻松纠正。
  2. 数据收集:这些错误发生在数据收集时,更难以纠正。它们可分为四种类型:
    • 完全随机丢失:  这是所有观察中丢失变量的概率相同的情况。例如:数据收集过程的受访者决定在投掷公平硬币后宣布他们的收入。如果出现负责人,被告会宣布他/她的收入,反之亦然。这里每次观察都有相同的失踪价值。
    • 随机丢失:这是随机变量丢失的情况,缺失率因其他输入变量的不同值/等级而异。例如:我们正在收集年龄数据,女性与男性相比具有更高的缺失值。
    • 缺少这取决于未观察到的预测变量:  这是缺失值不是随机的并且与未观察到的输入变量相关的情况。例如:在医学研究中,如果特定诊断引起不适,那么从研究中退出的可能性更高。除非我们将“不适”作为所有患者的输入变量,否则这个缺失值不是随机的。
    • 缺少这取决于缺失值本身:这是缺失值的概率与缺失值本身直接相关的情况。例如:收入较高或较低的人可能无法获得收入。

 

哪种方法可以治疗缺失值?

  1. 删除: 它有两种类型:List Wise Deletion和Pair Wise Deletion。
    • 在列表方式删除中,我们删除缺少任何变量的观察。简单性是这种方法的主要优点之一,但这种方法降低了模型的功效,因为它减少了样本量。
    • 在成对删除中,我们对存在感兴趣变量的所有情况进行分析。这种方法的优点是,它可以保留尽可能多的分析案例。这种方法的缺点之一是,它针对不同的变量使用不同的样本大小。
      Data Exploration, Missing Values, Deletion Methods
    • 当缺失数据的性质是“ 完全随机丢失” 时,使用删除方法,否则非随机缺失值会使模型输出产生偏差。
  2. 均值/模式/中位数估算: 估算是一种用估计值填充缺失值的方法。目标是采用可在数据集的有效值中识别的已知关系,以帮助估计缺失值。均值/模式/中值插补是最常用的方法之一。它包括通过该变量的所有已知值的均值或中值(定量属性)或模式(定性属性)替换给定属性的缺失数据。它可以有两种类型: -
    • 广义估算:在这种情况下,我们计算该变量的所有非缺失值的均值或中位数,然后用均值或中位数替换缺失值。如上表所示,变量“ Manpower”缺失,因此我们取“ Manpower”   (28.33)的所有非缺失值的平均值,然后用它替换缺失值。
    • 类似案例归集:在这种情况下,我们计算性别“ 男性” (29.75)和“ 女性 ”(25)的平均值,分别为非缺失值,然后根据性别替换缺失值。对于“ 男性 ”,我们将用29.75代替缺失的人力值,用25 代替“ 女性 ”。
  3. 预测模型:预测模型是处理缺失数据的复杂方法之一。在这里,我们创建一个预测模型来估计将替换丢失数据的值。在这种情况下,我们将数据集分为两组:一组没有变量的缺失值,另一组缺少值。第一个数据集成为模型的训练数据集,而第二个具有缺失值的数据集是测试数据集,具有缺失值的变量被视为目标变量。接下来,我们创建一个模型来根据训练数据集的其他属性预测目标变量,并填充测试数据集的缺失值。我们可以使用回归,ANOVA,Logistic回归和各种建模技术来执行此操作。这种方法有两个缺点:
    1. 模型估计值通常比真实值更好
    2. 如果数据集中的属性与缺少值的属性没有关系,则模型对于估计缺失值将不准确。
  4. KNN Imputation:在这种插补方法中,使用给定数量的属性来估算属性的缺失值,这些属性与缺少值的属性最相似。使用距离函数确定两个属性的相似性。还已知它具有某些优点和缺点。
    • 优点:
      • k-最近邻可以预测定性和定量属性
      • 不需要为具有缺失数据的每个属性创建预测模型
      • 可以轻松处理具有多个缺失值的属性
      • 考虑数据的相关结构
    • 坏处:
      • KNN算法在分析大型数据库时非常耗时。它搜索所有数据集以查找最相似的实例。
      • 选择k值非常关键。较高的k值将包括与我们需要的显着不同的属性,而较低的k值意味着缺少重要属性。


处理缺失值后,下一个任务是处理异常值。通常,我们倾向于在构建模型时忽略异常值。这是令人沮丧的做法。异常值往往会使数据偏斜并降低准确性。让我们了解更多关于异常值处理的信息。

 

3.异常值检测和处理技术

 

什么是异常值?

异常值是分析师和数据科学家常用的术语,因为它需要密切关注,否则会导致错误的估计。简单地说,异常值是一种远离一个样本的整体模式的观察结果。

让我们举个例子,我们进行客户分析,发现客户的平均年收入是80万美元。但是,有两个客户的年收入为4美元和420万美元。这两位客户的年收入远远高于其他人口。这两个观察将被视为异常值。

Outlier

 

异常值有哪些类型?

异常值可以有两种类型:  单变量和  多变量。上面,我们讨论了单变量异常值的例子。当我们查看单个变量的分布时,可以找到这些异常值。多变量异常值是n维空间中的异常值。为了找到它们,您必须查看多维分布。

让我们用一个例子来理解这一点。让我们说我们正在理解身高和体重之间的关系。下面,我们有高度,重量的单变量和双变量分布。看看盒子图。我们没有任何异常值(1.5 * IQR以上和以下,最常见的方法)。现在看看散点图。在这里,我们在一个特定的重量和高度段中有两个值,一个高于平均值。

Outlier, Multivariate Outlier

 

什么导致异常值?

每当我们遇到异常值时,解决它们的理想方法就是找出出现这些异常值的原因。处理它们的方法将取决于它们发生的原因。异常值的原因可分为两大类:

  1. 人工(错误)/非自然
  2. 自然的

让我们更详细地了解各种类型的异常值:

  • 数据输入错误: -  人为错误(如数据收集,记录或输入过程中引起的错误)可能导致数据异常。例如:客户的年收入为100,000美元。无意中,数据输入操作员在图中添加了额外的零。现在收入变成了1,000,000美元,高出10倍。显然,与其他人口相比,这将是异常值。
  • 测量误差: 它是异常值的最常见来源。这是在使用的测量仪器发生故障时引起的。例如:有10台称重机。其中9个是正确的,1个是有缺陷的。由故障机器上的人员测量的重量将高于/低于该组中的其他人。在故障机器上测量的重量可能导致异常值。
  • 实验误差:异常值的另一个原因是实验误差。例如:在7名选手的100米短跑中,一名选手错过了专注于“开始”的电话,导致他迟到。因此,这导致跑步者的跑步时间比其他跑步者更多。他的总跑步时间可能是一个异常值。
  • 故意异常值: 这通常出现在涉及敏感数据的自我报告的度量中。例如:青少年通常会报告他们消耗的酒精量。只有一小部分会报告实际价值。在这里,实际值可能看起来像异常值,因为其余的青少年正在报告消费。
  • 数据处理错误:每当我们执行数据挖掘时,我们都会从多个来源提取数据。某些操作或提取错误可能会导致数据集中出现异常值。
  • 采样错误:  例如,我们必须测量运动员的身高。错误的是,我们在样本中包含了一些篮球运动员。这种包含可能会导致数据集中的异常值。
  • 自然异常值: 当异常值不是人为的(由于错误),它是一个自然的异常值。例如:在我上一次与一家知名保险公司的合同中,我注意到前50名财务顾问的表现远远高于其他人。令人惊讶的是,这不是由于任何错误。因此,每当我们与顾问一起执行任何数据挖掘活动时,我们都会单独处理此段。

 

异常值对数据集的影响是什么?

异常值可以极大地改变数据分析和统计建模的结果。数据集中的异常值有许多不利影响:

  • 它增加了误差方差并降低了统计测试的功效
  • 如果异常值是非随机分布的,则可以降低正态性
  • 他们可以偏向或影响可能具有实质意义的估计
  • 它们还可以影响回归,ANOVA和其他统计模型假设的基本假设。

为了深入理解影响,我们举一个例子来检查数据集中有和没有异常值的数据集会发生什么。

例:

Outlier, Mean, Median, Mode

如您所见,具有异常值的数据集具有显着不同的均值和标准差。在第一种情况下,我们会说平均值是5.45。但随着异常值的增加,平均值飙升至30.这将完全改变估计值。

 

如何检测异常值?

最常用的检测异常值的方法是可视化。我们使用各种可视化方法,如Box-plotHistogramScatter Plot(上图,我们使用了箱形图和散点图进行可视化)。一些分析师还使用各种拇指规则来检测异常值。他们之中有一些是:

  • 任何值,超出-1.5 x IQR至1.5 x IQR的范围
  • 使用封顶方法。任何超出第5和第95百分位数范围的值都可视为异常值
  • 远离平均值的三个或更多标准偏差的数据点被认为是异常值
  • 异常值检测仅仅是检查有影响的数据点的数据的特殊情况,并且还取决于业务理解
  • 双变量和多变量异常值通常使用影响力指数或杠杆或距离来衡量。马哈拉诺比斯距离和库克D等热门指数经常用于检测异常值。
  • 在SAS中,我们可以使用PROC Univariate,PROC SGPLOT。为了识别异常值和有影响力的观察,我们还会看到像STUDENT,COOKD,RSTUDENT等统计测量。

 

如何删除异常值?

处理异常值的大多数方法类似于缺失值的方法,例如删除观察,转换它们,将它们分类,将它们视为一个单独的组,输入值和其他统计方法。在这里,我们将讨论用于处理异常值的常用技术:

删除观察: 如果由于数据输入错误,数据处理错误或异常值观察数量非常少,我们删除异常值。我们还可以在两端使用修剪来移除异常值。

转换和分级值: 转换变量也可以消除异常值。值的自然对数减少了由极值引起的变化。Binning也是变量转换的一种形式。决策树算法允许由于变量的分箱而很好地处理异常值。我们还可以使用为不同观察指定权重的过程。

Variable Transformation, LOG

影响: 缺失值的估算一样  ,我们也可以归咎于异常值。我们可以使用均值,中位数,模式插补方法。在计算值之前,我们应该分析它是自然的异常还是人为的。如果它是人为的,我们可以使用输入值。我们还可以使用统计模型来预测异常值观察的值,之后我们可以用预测值来估算它。

单独处理: 如果存在大量异常值,我们应该在统计模型中单独处理它们。其中一种方法是将两个组视为两个不同的组,并为两个组构建单独的模型,然后组合输出。


到此为止,我们已经了解了数据探索,缺失值处理以及异常检测和处理技术的步骤。这3个阶段将使您的原始数据在信息可用性和准确性方面更好。现在让我们进入数据探索的最后阶段。这是特色工程。

 

4.特征工程的艺术

 

什么是特色工程?

特征工程是从现有数据中提取更多信息的科学(和艺术)。您没有在此处添加任何新数据,但实际上您正在使您已经拥有的数据更有用。

例如,假设您试图根据日期预测购物中心的脚下跌。如果您尝试直接使用日期,则可能无法从数据中提取有意义的见解。这是因为脚下跌对月份的影响要小于一周中的哪一天。现在,有关星期几的信息隐含在您的数据中。你需要把它拿出来让你的模型更好。

这样可以从称为特征工程的数据中提取信息。

 

特征工程的过程是什么?

完成数据探索的前5个步骤后,您可以执行特征工程 -  变量识别,单变量,双变量分析,  缺失值插补  和  异常值处理。特征工程本身可分为两个步骤:

  • 变量转换。
  • 变量/特征创建。

这两种技术在数据探索中至关重要,对预测能力有显着影响。让我们更详细地了解这一步。

 

什么是变量转换?

在数据建模中,转换是指通过函数替换变量。例如,用方形/立方根或对数x替换变量x是一种变换。换句话说,转换是一个改变变量与其他变量的分布或关系的过程。

让我们看一下变量转换有用的情况。

 

什么时候应该使用变量转换?

以下是变量转换的必要条件:

  • 当我们想要改变变量的比例或标准化变量的值以便更好地理解时。如果您拥有不同比例的数据,则必须进行此转换,但此转换不会更改变量分布的形状
  • 当我们可以将复杂的非线性关系转换为线性关系时。与非线性或曲线关系相比,变量之间存在线性关系更容易理解。变换有助于我们将非线性关系转换为线性关系。散点图可用于查找两个连续变量之间的关系。这些转换也改善了预测。对数变换是在这些情况下使用的常用变换技术之一。

Correlation, Analytics, Transformation

  • 对称分布优于偏斜分布,因为它更容易解释和生成推论。一些建模技术需要正态分布变量。因此,只要我们有一个偏斜的分布,我们就可以使用减少偏度的变换。对于右倾斜分布,我们采用方形/立方根或变量的对数,对于左倾斜,我们采用方形/立方或变量的指数。

Log Transformation, Analytics, Transformation

  • 变量转换也是从实现的角度(人工参与)完成的。让我们更清楚地理解它。在我的一个关于员工绩效的项目中,我发现年龄与员工的绩效直接相关,即年龄越大,绩效越好。从实施的角度来看,启动基于年龄的程序可能会带来实施挑战。但是,将销售代理分为三个年龄组,分别为30岁,30-45岁和> 45,然后为每个群体制定三种不同的策略,这是一种明智的方法。这种分类技术称为变量Binning。

 

变量转换的常用方法有哪些?

有各种方法用于转换变量。如上所述,其中一些包括平方根,立方根,对数,分组,倒数和许多其他。让我们通过强调这些转换方法的优缺点来详细研究这些方法。

  • 对数:变量的对数是一种常用的变换方法,用于在分布图上更改变量的分布形状。它通常用于减少变量的右偏度。但是,它也不能应用于零值或负值。
  • 方形/立方体根:变量的方形和立方根对变量分布具有声音效果。但是,它没有对数变换那么重要。立方体根有自己的优势。它可以应用于包括零的负值。平方根可以应用于包括零的正值。
  • 分箱:用于对变量进行分类。它是根据原始值,百分位数或频率执行的。分类技术的决定基于业务理解。例如,我们可以将收入分为三类,即:高,平均和低。 我们还可以执行共变量分箱,这取决于多个变量的值。

 

什么是功能/变量创建及其优点?

特征/变量创建是基于现有变量生成新变量/特征的过程。例如,我们将日期(dd-mm-yy)作为数据集中的输入变量。我们可以生成新的变量,如日,月,年,星期,工作日,可能与目标变量有更好的关系。此步骤用于突出显示变量中的隐藏关系:

 

有各种技术来创建新功能。我们来看看一些常用的方法:

  • 创建派生变量:这是指使用一组函数或不同方法从现有变量创建新变量。让我们通过“ 泰坦尼克号 - Kaggle比赛 ” 来看一下。在此数据集中,变量age具有缺失值。为了预测缺失值,我们使用名称的称呼(Master,Mr,Miss,Mrs)作为新变量。我们如何决定创建哪个变量?老实说,这取决于对分析师的商业理解,他的好奇心以及他可能对这个问题的一系列假设。记录变量,分箱变量和其他变量变换方法等方法也可用于创建新变量。
  • 创建虚拟变量:虚拟变量最常见的应用之一是将分类变量转换为数值变量。虚拟变量也称为指标变量。将分类变量作为统计模型中的预测变量是有用的。分类变量可以取值0和1.让我们采用变量“性别”。我们可以生产两个变量,即“ Var_Male ”与值1(男)0(无男)和“ Var_Female ”与值1(女)0(无女)。我们还可以为具有n或n-1个虚拟变量的分类变量的两个以上类创建虚拟变量。

 

Dummy Variable, Data Exploration

如需进一步阅读,以下是可应用于您的数据的转换/创建想法列表

 

结束笔记

如开头所述,投入数据探索的质量和努力将良好的模型与糟糕的模型区分开来。

这结束了我们的数据探索和准备指南。在本综合指南中,我们详细介绍了数据探索的七个步骤。本系列的目的是为数据科学中一个极其重要的过程提供深入和一步一步的指导。

就个人而言,我很喜欢撰写本指南,并希望从您的反馈中学习。您觉得本指南有用吗?非常感谢您的建议/反馈。请随时通过以下评论提出您的问题。

作者:SUNIL RAY

原文:https://www.analyticsvidhya.com/blog/2016/01/guide-data-exploration/

猜你喜欢

转载自blog.csdn.net/ChenVast/article/details/81531303