数据探索综合指南EDA 转发

Posted ceeyo

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了数据探索综合指南EDA 转发相关的知识,希望对你有一定的参考价值。

数据探索综合指南

 
 

总览

  • 有关数据探索(EDA)的完整教程
  • 我们涵盖了数据探索的几个方面,包括缺失值估算,异常值去除和特征工程的技巧

 

介绍

没有数据浏览的捷径。如果您处于一种状态,那么机器学习可以使您摆脱每次数据风暴,相信我,事实并非如此。经过一段时间后,您将意识到自己正在努力提高模型的准确性。在这种情况下,数据探索技术将助您一臂之力。

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

我从事业务分析专业近三年了。在我最初的日子里,我的一位导师建议我花大量时间在探索和分析数据上。遵循他的建议对我很有帮助。

我创建了本教程来帮助您了解数据探索的基础技术。与往常一样,我尽力以最简单的方式解释这些概念。为了更好地理解,我举了几个例子来说明复杂的概念。

 

技术图片

 

 

目录

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

 

让我们开始吧。

 

1.数据探索和准备步骤

记住输入的质量决定输出的质量。因此,一旦您准备好业务假设,就可以在这里花费大量时间和精力。据我个人估计,数据探索,清理和准备工作可能会占用您整个项目总时间的70%。

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

  1. 变量识别
  2. 单变量分析
  3. 双变量分析
  4. 价值观缺失处理
  5. 离群值处理
  6. 变量变换
  7. 变量创建

最后,我们需要反复进行第4步至第7步,然后才能得出改进的模型。

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

 

变量识别

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

让我们通过示例更清楚地了解此步骤。

示例:-假设我们要预测学生是否会打板球(请参阅下面的数据集)。在这里,您需要确定预测变量,目标变量,变量的数据类型和变量的类别。技术图片下面,变量已在不同类别中定义:

技术图片

 

单变量分析

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

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

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

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

 

双变量分析

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

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

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

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

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

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

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

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

技术图片

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

 

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

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

技术图片

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

概率为0:表示两个类别变量都是因变量

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

概率小于0.05:表明变量之间的关系在95%置信度下很显着。用于检验两个类别变量的独立性的卡方检验统计量如下:

技术图片其中O代表观察到的频率。E是原假设下的期望频率,其计算公式如下: 从上一个双向表中,产品类??别1的预期规模较小的期望计数为0.22。通过将大小(9)的行总数乘以产品类别(2)的列总数,然后除以样本大小(81)得出。对每个单元执行该过程。用于分析关系力量的统计量度为:
技术图片

  • 名义分类变量的Cramer V
  • 序数分类变量的Mantel-Haenszed卡方。

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

 

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

  • Z检验/ T检验:-两项检验均评估两组平均值在统计学上是否彼此不同。技术图片如果Z的概率很小,则两个平均值的差会更大。T检验与Z检验非常相似,但是在两个类别的观察次数均小于30时使用。
    技术图片
  • 方差分析:-评估两组以上的平均值是否在统计上有所不同。

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

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

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

 

2.缺失价值处理

 

为什么需要缺失值治疗?

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

技术图片

注意上图所示的缺失值:在左图中,我们没有处理缺失值。从该数据集得出的结论是,男性打板球的机会高于女性。另一方面,如果您查看第二张表,该表显示了在处理了缺失值之后的数据(基于性别),我们可以发现,与男性相比,女性打板球的机会更高。

 

为什么我的数据缺少值?

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

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

 

哪些方法可以处理缺失值?

  1. 删除: 它有两种类型:明智的列表删除和明智的配对删除。
    • 在逐列表删除中,我们删除缺少任何变量的观察值。简单性是此方法的主要优势之一,但是此方法降低了模型的功能,因为它减小了样本量。
    • 在成对删除中,我们对所有存在目标变量的情况进行分析。这种方法的优点是,它可以保留尽可能多的案例以供分析。这种方法的缺点之一是,它对不同的变量使用不同的样本量。

      技术图片
    • 当缺失数据的性质为“ 完全随机缺失” 时,将使用删除方法,否则非随机缺失值会偏向模型输出。
  2. 均值/众数/中位数插补: 插补是一种用估计值填充缺失值的方法。目的是采用可以在数据集的有效值中识别的已知关系,以帮助估计缺失值。均值/众数/中位数插补是最常用的方法之一。它包括用该变量所有已知值的均值或中位数(定量属性)或众数(定性属性)替换给定属性的缺失数据。它可以有两种类型:
    • 广义归因:在这种情况下,我们计算该变量所有非缺失值的均值或中位数,然后用均值或中位数替换缺失值。就像上面的表格,变量“ 万宝”丢失,所以我们取平均的所有非缺失“的价值观的人力资源”   (28.33),然后替换缺失与它的价值。
    • 相似情况的推算在这种情况下,我们分别计算性别“ 男” (29.75)和“  ”(25)的平均值,这些平均值均不含缺失值,然后根据性别替换缺失值。对于“ 男性 ”,我们将缺失的人力值替换为29.75,对于“ 女性 ” 将替换为25。
  3. 预测模型:预测模型是处理丢失数据的复杂方法之一。在这里,我们创建了一个预测模型来估计将替代缺失数据的值。在这种情况下,我们将数据集分为两组:一组没有变量的缺失值,另一组没有值。第一个数据集成为模型的训练数据集,而具有缺失值的第二个数据集是测试数据集,具有缺失值的变量被视为目标变量。接下来,我们基于训练数据集的其他属性创建一个模型来预测目标变量并填充测试数据集的缺失值,我们可以使用回归,ANOVA,Logistic回归和各种建模技术来执行此操作。这种方法有两个缺点:
    1. 模型估计值通常比真实值表现得更好
    2. 如果数据集中的属性与缺少值的属性之间没有关系,则该模型将无法精确估计缺失值。
  4. KNN插补:在这种插补方法中,使用给定数量的属性来插补属性的缺失值,这些属性与缺失值的属性最相似。使用距离函数确定两个属性的相似性。还已知具有某些优点和缺点。
    • 优点:
      • k最近邻居可以预测定性和定量属性
      • 不需要为每个缺少数据的属性创建预测模型
      • 具有多个缺失值的属性可以轻松处理
      • 考虑到数据的相关结构
    • 坏处:
      • 在分析大型数据库时,KNN算法非常耗时。它搜索所有数据集以查找最相似的实例。
      • k值的选择非常关键。k的较高值将包含与我们需要的属性显着不同的属性,而k的较低值意味着缺少重要属性。


处理缺失值之后,下一个任务是处理离群值。通常,我们在构建模型时往往会忽略离群值。这是令人沮丧的做法。离群值往往会使您的数据偏斜并降低准确性。让我们进一步了解离群值处理。

 

3.离群值检测和处理技术

 

什么是离群值?

离群值是分析人员和数据科学家常用的术语,因为它需要密切注意,否则可能导致错误的估计。简而言之,离群值是一个观察值,与样本的整体模式相距甚远。

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

技术图片

 

离群值有哪些类型?

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

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

技术图片

 

是什么导致离群值?

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

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

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

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

 

离群值对数据集有什么影响?

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

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

为了深入了解其影响,让我们举一个例子来检查在数据集中有无异常时数据集会发生什么情况。

例:

技术图片

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

 

如何检测离群值?

检测异常值的最常用方法是可视化。我们使用各种可视化方法,例如Box-plotHistogramScatter Plot(以上,我们使用Box Plot和Scatter Plot进行可视化)。一些分析师还使用各种经验法则来检测异常值。他们之中有一些是:

  • 任何值,超出-1.5 x IQR到1.5 x IQR的范围
  • 使用上限方法。任何超出第5个百分点和第95个百分点范围的值都可以视为异常值
  • 距离均值三个或更多标准偏差的数据点被视为离群值
  • 离群检测只是检查有影响的数据点的数据的一种特殊情况,它还取决于业务理解
  • 双变量和多变量离群值通常使用影响力或杠杆或距离的指标来衡量。诸如Mahalanobis的距离和Cook的D之类的流行指标经常被用来检测离群值。
  • 在SAS中,我们可以使用PROC Univariate,PROC SGPLOT。为了识别异常值和有影响力的观察结果,我们还研究了统计量度,例如学生,COOKD,RSTUDENT等。

 

如何删除离群值?

处理异常值的大多数方法与缺失值的方法类似,例如删除观察值,对其进行转换,将它们进行分箱,将它们视为单独的组,估算值和其他统计方法。在这里,我们将讨论用于处理离群值的常用技术:

删除观察 值:如果是由于数据输入错误,数据处理错误或异常观察值数量很少而导致的异常值,我们将删除。我们还可以在两端使用修剪来去除异常值。

转换和合并值: 转换变量还可以消除异常值。值的自然对数可减少由极值引起的变化。分箱也是变量转换的一种形式。由于对变量进行分箱,因此决策树算法可以很好地处理离群值。我们还可以使用将权重分配给不同观察值的过程。

技术图片

估算: 像  估算缺失值一样,我们也可以估算离群值。我们可以使用均值,中位数,模态插补方法。在估算值之前,我们应该分析它是自然异常值还是人为异常值。如果是人为的,我们可以采用估算值。我们还可以使用统计模型来预测异常值,然后再使用预测值进行估算。

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


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

 

 

4.特征工程的艺术

 

什么是特征工程?

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

例如,假设您正在尝试根据日期来预测购物中心的脚倒下。如果您尝试直接使用日期,则可能无法从数据中提取有意义的见解。这是因为脚下坠落受到的影响要小于星期几。现在,有关星期几的信息已隐含在您的数据中。您需要带出它来使您的模型更好。

这种从数据中提取信息的练习称为要素工程。

 

特征工程的过程是什么?

一旦完成了数据探索的前5个步骤,就可以执行特征工程-  变量识别,单变量,双变量分析,  缺失值插补  和  离群值处理特征工程本身可以分为两个步骤:

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

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

 

什么是变量转换?

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

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

 

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

以下是需要进行变量转换的情况:

  • 当我们想要更改变量的标度或标准化变量的值以更好地理解时。如果必须使用不同比例的数据,则必须进行此转换,但是此转换不会更改变量分布的形状
  • 当我们可以将复杂的非线性关系转换为线性关系时与非线性或曲线关系相比,变量之间线性关系的存在更容易理解。变换帮助我们将非线性关系转换为线性关系。散点图可用于查找两个连续变量之间的关系。这些转换也改善了预测。对数转换是在这些情况下常用的转换技术之一。
  • 技术图片对称分布优于倾斜分布,因为它更易于解释和生成推论。一些建模技术需要变量的正态分布。因此,只要分布偏斜,就可以使用减少偏斜的变换。对于右偏分布,我们采用变量的平方/立方根或对数,对于左偏分布,我们采用变量的平方/立方或指数。技术图片
  • 实现的角度(人类参与)也可以完成变量转换让我们更清楚地了解它。在我的一个有关员工绩效的项目中,我发现年龄与员工绩效有直接关系,即年龄越高,绩效越好。从实施的角度来看,启动基于年龄的程序可能会带来实施方面的挑战。但是,将销售代理商分为三个年龄段,分别是<30岁,30-45岁和> 45岁,然后为每个群体制定三种不同的策略是明智的方法。这种分类技术称为变量合并。

 

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

有多种用于转换变量的方法。正如讨论的那样,其中一些包括平方根,立方根,对数,装仓,倒数等。让我们通过重点介绍这些转换方法的优缺点来详细研究这些方法。

  • 对数:变量的对数是一种常用的转换方法,用于更改变量在分布图中的分布形状。通常用于减少变量的右偏度。不过,它也不能应用于零或负值。
  • 平方根/立方根:变量的平方根和立方根对变量分布具有良好的影响。但是,它不如对数转换那么重要。多维数据集根有其自身的优势。它可以应用于包括零在内的负值。平方根可以应用于包括零的正值。
  • Binning:用于对变量进行分类。它是对原始值,百分位数或频率执行的。分类技术的决策基于业务理解。例如,我们可以将收入分为三类,即:高,平均和低。 我们还可以根据多个变量的值执行协变量合并。

 

什么是功能/变量创建及其好处?

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

技术图片

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

  • 创建派生变量:这是指使用一组函数或不同方法从现有变量创建新变量。让我们通过“ 泰坦尼克号–卡格勒比赛 ” 来看看在此数据集中,可变年龄缺少值。为了预测缺失值,我们使用名称的称呼(主人,先生,小姐,夫人)作为新变量。我们如何决定要创建哪个变量?老实说,这取决于业务人员对分析师的理解,他的好奇心以及他可能对该问题有的一套假设。也可以使用诸如获取变量对数,合并变量和其他变量转换方法之类的方法来创建新变量。
  • 创建虚拟变量:虚拟变量最常见的应用之一是将分类变量转换为数值变量。虚拟变量也称为指标变量。在统计模型中将分类变量用作预测变量非常有用。分类变量的取值可以为0和1。让我们取一个变量“性别”。我们可以产生两个变量,分别是“ Var_Male ”(值1(男性)和0(无男性))和“ Var_Female ”(值1(女性)和0(无女性))。我们还可以为具有n或n-1个虚拟变量的两个以上类别的分类变量创建虚拟变量。

技术图片

为了进一步阅读,这里列出了可以应用于您的数据的转换/创建想法

 

尾注

如开头所述,在数据探索中投入的质量和精力将好的模型与坏的模型区分开。

这样就结束了我们关于数据探索和准备的指南。在这份综合指南中,我们详细研究了数据探索的七个步骤。本系列文章的目的是为数据科学中极为重要的过程提供深入的逐步指导。

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

 
 

以上是关于数据探索综合指南EDA 转发的主要内容,如果未能解决你的问题,请参考以下文章

Kaggle指南(四)—— 探索性数据分析

[EDA]FPGA/CPLD 设计流程步骤及步骤概念

数据挖掘入门指南!!!

数字IC学习之五(综合SVA以及跨时钟域设计)

《android开发艺术探索》读书笔记(十三)--综合技术

MacOS下也能做Verilog开发/仿真/综合