task2 EDA数据分析

目标

了解,验证数据集

了解变量关系,与预测值之间关系

数据处理、特征工程

数据探索性分析

EDA探索性数据分析

通过EDA可实现:

1. 得到数据的直观表现 

2. 发现潜在的结构 

3. 提取重要的变量 

4. 处理异常值 

5. 检验统计假设 

6. 建立初步模型 

7. 决定最优因子的设置

 

数据类型

数据一般按类型分为两种:离散型连续型;

离散型的数据相当于分类型数据,如性别、种族、教育程度等。其中,有些类别是没有顺序的,如性别;有些类别则是有顺序的,如教育程度。这两种情况分别称为名义变量和有序变量。

对于连续型变量,一般是在值域里面连续取值,这种变量一般是有序的。

统计量

中位数、方差、 内距(Q3−Q1Q3−Q1)

箱线图和直方图

一般步骤

1.拿到数据后,用来探索的方法分为两类,一是基于图像的,二是基于定量方法的。

常见问题:

- 一般统计量:均值,中位数,方差,分布,分位数,

- 工程修改是否 产生作用:变量变换、缺失值处理

- 自变量是否对结果有影响

- 响应变量和自变量之间的最佳函数

- 时间相关数据能否信噪分离

- 多维变量提取结构?

- 离群值?

知识树:

task2 EDA数据分析

实战案例

目标名称:水的供应和用水是否与人均国内生产总值有关?(提出假设)

数据源http://www.fao.org/nr/water/aquastat/data/query/index.html下图数据源界面(如果您经常做学术研究,例如OECD等数据都是这样的。)

task2 EDA数据分析

数据源简单介绍

网站:http://www.fao.org/nr/water/aquastat/metadata/index.stm

组织的三个主要目标是:

1.消除饥饿、粮食不安全和营养不良

2.消除贫困促进经济社会进步

3.自然资源的可持续管理和利用,包括土地、水、空气、气候和遗传资源,以造福今世后代。

为支持这些目标,《宪法》第1条要求粮农组织“收集、分析、解释和传播与营养、粮食和农业有关的信息”。因此,水温自动调节器开始,其目的是通过收集有助于联合国粮农组织的目标,与水资源相关的信息传播分析,用水和农业用水管理,对国家重点在非洲,亚洲,美国,拉丁美洲,加勒比海。

联合国粮农组织提供数据,元数据,报告国家概况,河流域概况,分析区域,图,表空间,数据,指导方针,和其他的在线工具:

1、水资源:内部、跨界、总

2、水的用途:按部门,按来源,废水

3、灌溉:地点、面积、类型、技术、作物

4、水坝:位置,高度,容量,表面积

5、与水有关的机构、政策和立法

项目软件:软件python 3.6展示的软件Anaconda里面的jupster notebook,运行环境Window7,使用电脑Thinkpad T450。

项目计划

通过对数据有简单的预估,这个时候,由于自己的电脑内存比较小,跑上十万以后的数据都会有明显的卡顿,为此采取了一个特殊的策略—使用Tidy Data进行试验。Tidy Data大家可能不熟悉,我直接也给大家上了干货。TidyData的官方解读:https://tomaugspurger.github.io/modern-5-tidy.html直接连接可以查看如何使用小批量的数据进行实验。

本实验的目标为三点:每个变量形成一个列,每个观测值形成一行,不同类型的观测单元组成一个表格。

数据转换:

1、取对数log:当数据的峰值很高,通过将数据取对数能够将数据归一化处理。

2、连续变量分组(bin):分组连续变量,能够更加简便的了解观测值的分布。

3、简化类别:一个单一的数据,往往类别太多会让人迷乱,一般不想超过8-10列,那就尽量找到重要的类别。(机器学习里面这一个部分很重要,和特征选择一样)

项目开始

第一步,不可或缺的导入五大包:NumPy、Pandas、Matplotlib、Seaborn,Warnings大家对这四个包不熟悉的可以百度官方网站,有专门的材料。特别主要的就是Seaborn,这个库目前可视化的能力已经超过之前对Python的理解,有很多人说R可视化效果很好,但是我觉得这个可视化一点都不差。%matplotlib inline很多人不懂为什么会加上这个意思,这就是在jupter画图的时候,能够将可视化的图能够在结果中展现出来,我试过很多时候忘记加,结果图就只出现一行字。所以需要加上这个。

task2 EDA数据分析

第二步,导入数据

task2 EDA数据分析

由于数据是压缩包的形式,我们平时一般的是CSV,TXT的格式,那我们可以试一试压缩包的读取方式。对数据进行基本的了解,Pandas为我们提供了很多可以简便查看和检查数据的方法。data.info(),data.shape,data.head(),data.tail()。

结果展示:

task2 EDA数据分析

task2 EDA数据分析

task2 EDA数据分析

task2 EDA数据分析

之后的四步,见下一篇博文。