专栏首页人工智能LeadAI机器学习实战 | 数据探索

机器学习实战 | 数据探索

数据的输入质量决定了输出的最后结果,数据的探索、预处理、特征选择、降维等特征工程占了项目的70%的时间。那么如果我们确定了商业目的,该如何一步一步渐进式进行特征工程呢?各位看官不急,请小的慢慢给你道来。

在建立模型前,我们大致需要顺序经过以下几步:

1、变量识别 2、单变量分析 3、双变量分析 4、缺失值处理 5、异常值处理 6、变量变化 7、变量创建

其中第4-7步在模型优化中会重复进行。

1、变量识别

首先,识别Predictor(即feature、输入)和Target(输出)变量。 接下来,确定变量的数据类型和类别。

举一个例子,让我们更清楚地了解这一步。 假设我们想预测学生是否会玩板球(参考下面的数据集),需要识别预测变量、目标变量,变量的数据类型和变量类别。

那么

Data_exploration_2.png

2、单变量分析

在这个阶段,我们逐个探索变量。 执行单变量分析的方法取决于变量类型是分类类型还是连续类型。

3、连续变量

在连续变量的情况下,我们需要了解变量的中心趋势和分散,使用各种统计度量可视化方法进行测量,如下所示

Data_exploration_31.png

4、分类变量

对于分类变量,我们可使用频率表来了解每个类别的分布,也可以读取每个类别下的值的百分比,也可以使用每个类别的Count和Count%来衡量。Bar chart可以用作可视化。

5、双变量分析

双变量分析的主要目的是发现两个变量之间的关系。可以对分类和连续变量的任何组合执行双变量分析。如:Continuous & Continuous,Categorical & Categorical,Categorical & Continuous and Continuous & Continuous。

6、Continuous&Continuous

在两个连续变量之间进行双变量分析时,散点图( scatter plot)是找出两个变量之间的关系的一个很好的方式。 散点图表示变量之间的关系可以是线性或非线性。

correlation-examples

  • -1: perfect negative linear correlation
  • +1:perfect positive linear correlation and
  • 0: No correlation

scatter plot只是直观来看,但是相关性如何计算呢?一般通过Pearson Correlation 来计算,缺点是:只可以确定线性相关性。非线性关系,可以采用互信息法,互信息系数能够很好地度量各种相关性,但是计算相对复杂一些。Pearson Correlation 计算方法如下:

correlation-calc1

Step 1: 计算x、y的均值 Step 2: x的每个值减去x的均值得到a, y值做类似操作得到b Step 3: 计算: a × b, a的平方和b的平方 Step 4: 求a × b, a平方和b平方的和 Step 5: 如5的公式

7、Categorical&Categorical

双向表:我们可以通过创建一个计数和计数%的双向表来开始分析关系,行表示一个变量的类别,列表示另一个变量的类别,如图。

Data_exploratio

Stacked Column Chart:更直观,如上图。 卡方检验:计算方法可以参考前面文章 确定自变量和因变量的相关性

p值为0:表示两个变量是相关的 p值为1:表示两个变量是独立的

7、Categorical&Continuous

在探索分类和连续变量之间的关系时,我们可以为每个级别的分类变量绘制box plot,但不显示统计学意义。 为了看统计学意义,我们可以进行Z检验,T检验或方差分析。

T检验与Z检验非常相似,但用于当两个类别的观察次数小于30时,方差分析用于评估两个以上组的平均值是否在统计学上不同。

下篇再接着介绍。

8、参考

1、central measures(https://www.mathsisfun.com/data/central-measures.html) 2、range(https://www.mathsisfun.com/data/range.html) 3、https://www.analyticsvidhya.com/blog/2016/01/guide-data-explo

4、ration/(https://www.analyticsvidhya.com/blog/2016/01/guide-data-exploration/)

本文分享自微信公众号 - 人工智能LeadAI(atleadai),作者:苏小宝

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2017-11-05

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 机器学习实战 | 数据探索(变量变换、生成)

    1.1、什么是变量变换? 在数据建模中,变换是指通过函数替换变量。 例如,通过平方/立方根或对数x替换变量x是一个变换。 换句话说,变换是一个改变变量与其他变量...

    用户1332428
  • 为什么算法容易忘记之插入排序

    在学习常用的排序算法时,常有这样的感觉,一看就懂,过眼就忘。原因在于没有将排序的基本思想与代码中各个循环控制变量的意义联系起来进行理解记忆。 插入排序 首先,我...

    用户1332428
  • 译文 | 与TensorFlow的第一次接触(一)

    本人对一直对高性能网络服务器,分布式存储比较感兴趣,在BAT时也一直从事架构开发,并没有做过机器学习相关工作,平时喜欢阅读分析开源代码,到目前为止已分析完约8套...

    用户1332428
  • Powershell中的变量

    在我们的迷你系列“Variables in Shells”中,了解如何在PowerShell中处理局部变量。

    QRosie
  • VBA程序的变量和常量

    大家好,在本节就主要介绍变量和常量,主要掌握声明变量和变量赋值,变量的作用域和存活期需要理解。

    无言之月
  • 一文读懂R中的探索性数据分析

    探索性数据分析(EDA)是数据项目的第一步。我们将创建一个代码模板来实现这一功能。 简介 EDA由单变量(1个变量)和双变量(2个变量)分析组成。

    1480
  • (21)Bash用户自定义变量

    变量是计算机内存的单元,其中存放的值可以改变。当Shell脚本需要保存一些信息时,如一个文件名或是一个数字,就把它放在一个变量中。每个变量有一个名字,所以很容易...

    生信real
  • 机器学习实战 | 数据探索(变量变换、生成)

    1.1、什么是变量变换? 在数据建模中,变换是指通过函数替换变量。 例如,通过平方/立方根或对数x替换变量x是一个变换。 换句话说,变换是一个改变变量与其他变量...

    用户1332428
  • 数据管理—reshape2包

    我就在这里等你关注,不离不弃 ——A·May R-50T-50 ? 「序 言 」 不知不觉,已经写了半百的R语言了,感觉等数据准备这个大阶段结束,有必要将数据理...

    企鹅号小编
  • 我眼中的分类变量水平压缩(一)

    如果变量水平本身较多,那么哑变量的水平个数也会相应变多,这种情况下去构建模型肯定不行,需要将分类变量的水平进行压缩处理。

    许卉

扫码关注云+社区

领取腾讯云代金券