探索性数据分析(Exploratory Data Analysis,EDA)主要的工作是:对数据进行清洗,对数据进行描述(描述统计量,图表),查看数据的分布,比较数据之间的关系,培养对数据的直觉,对数据进行总结等。

探索性数据分析(EDA)与传统统计分析(Classical Analysis)的区别:

传统的统计分析方法通常是先假设样本服从某种分布,然后把数据套入假设模型再做分析。但由于多数数据并不能满足假设的分布,因此,传统统计分析结果常常不能让人满意。

探索性数据分析方法注重数据的真实分布,强调数据的可视化,使分析者能一目了然看出数据中隐含的规律,从而得到启发,以此帮助分析者找到适合数据的模型。“探索性”是指分析者对待解问题的理解会随着研究的深入不断变化。

应用传统统计分析方法的数据分析步骤:

    提出问题 Problem => 准备数据 Data => 建模 Model => 分析 Analysis => 得出结论 Conclusions

应用探索性数据分析方法的数据分析步骤:

    提出问题 Problem => 准备数据 Data => 分析 Analysis => 建模 Model => 得出结论 Conclusions

探索性数据分析通常有以下几个步骤:

A. 检查数据:

- 是否有缺失值? 
- 是否有异常值? 
- 是否有重复值? 
- 样本是否均衡?
- 是否需要抽样? 
- 变量是否需要转换? 
- 是否需要增加新的特征?

注:数据类型分为数值型,类别型,文本型,时间序列等。这里主要指的是数值型(定量数据)和类别型(定性数据),其中数值型又可以分为连续型和离散型。

B. 使用描述统计量和图表对数据进行描述:

1)连续变量:

常见的描述统计量:平均值,中位数,众数,最小值,最大值,四分位数,标准差等

图表:频数分布表(需进行分箱操作),直方图,箱线图(查看分布情况)

2)无序型离散变量:

常见的描述统计量:各个变量出现的频数和占比

图表:频数分布表(绝对频数,相对频数,百分数频数),柱形图,条形图,茎叶图,饼图

3)有序型离散变量:

常见的描述统计量:各个变量出现的频数和占比

图表:频数分布表,堆积柱形图,堆积条形图(比较大小)

C. 考察变量之间的关系:

1)连续变量和连续变量(Continuous & Continuous):

对于连续变量与连续变量之间的关系,可以通过散点图进行查看。对于多个连续变量,可使用散点图矩阵,相关系数矩阵,热图。

量化指标:皮尔逊相关系数(线性关系),互信息(非线性关系)

2)离散变量和离散变量(Discrete & Discrete):

对于离散变量与离散变量之间的关系,可以通过交叉分组表,复合柱形图,堆积柱形图,饼图进行查看。对于多个离散变量,可以使用网状图,通过各个要素之间是否有线条,以及线条的粗线来显示是否有关系以及关系的强弱。

量化指标:卡方独立性检验--->Cramer’s φ (Phi) or Cramer’s V

3)离散变量和连续变量(Discrete & Continuous):

对于离散变量和连续变量之间的关系,可以使用直方图,箱线图,小提琴图进行查看,将离散变量在图形中用不同的颜色显示,来直观地观察变量之间的关系。

量化指标:独立样本t检验中的t统计量和相应的p值(两个变量),单因素方差分析中的η²(三个变量及以上)

D. 其他

1)检查数据的正态性:直方图,箱线图,Q-Q图(Quantile-Quantile Plot )

直方图,箱线图:看图形是否对称

Q-Q图:比较数据的分位数与某个理论分布的分位数是否匹配


总结一下,如果要对数据集进行探索性分析:(以名字为data的数据集为例)

第一步,用pandas读取数据集,并显示前5行,看是否加载正确;

第二步,有必要时对列名重命名;

第三步,查看数据整体情况(行列数data.shape,数据类型data.dtypes,或者用data.info()同时查看这两项,用data.describe()查看连续变量的描述统计量);

第四步,处理缺失值,异常值,重复值问题(各列分别有多少缺失值data.apply(lambda x: sum(x.isnull()),axis=0),各行分别有多少缺失值data.apply(lambda x: sum(x.isnull()),axis=1),总共有多少行有缺失值

len(data.apply(lambda x: sum(x.isnull()),axis=1).nonzero()[0]),删除重复值data.drop_duplicates());

第五步,有必要时转换数据类型;

第六步,看是否需要添加新的特征;

第七步,确定分析思路,用思维导图画出来;

第八步,按照分析思路进行分析并画出图形;

第九步,总结分析结果;


附:

图形的选择:描述趋势使用折线图,描述数量使用柱状图(且必须从 0 开始),描述关系使用散点图,描述比例使用饼状图。

科学家经过 30 年的研究,发现人对位置、长度和角度的感知最敏锐,可以用来表示数量,其次是面积和密度,可表示顺序,对于颜色和形状的感知是最不精确的,只可用来区分类别。

参考:https://www.jianshu.com/p/2e590d306bd2

探索性数据分析(Exploratory Data Analysis,EDA)的更多相关文章

  1. 1.探索性数据分析(EDA,Exploratory Data Analysis)

    一.数据探索 1.数据读取 遍历文件夹,读取文件夹下各个文件的名字:os.listdir() 方法:用于返回指定的文件夹包含的文件或文件夹的名字的列表.这个列表以字母顺序. 它不包括 '.' 和'.. ...

  2. 学习笔记之Data analysis

    Data analysis - Wikipedia https://en.wikipedia.org/wiki/Data_analysis Data analysis is a process of ...

  3. python Pandas Profiling 一行代码EDA 探索性数据分析

    文章大纲 1. 探索性数据分析 代码样例 效果 解决pandas profile 中文显示的问题 1. 探索性数据分析 数据的筛选.重组.结构化.预处理等都属于探索性数据分析的范畴,探索性数据分析是帮 ...

  4. How to use data analysis for machine learning (example, part 1)

    In my last article, I stated that for practitioners (as opposed to theorists), the real prerequisite ...

  5. 探索性数据分析EDA综述

    目录 1. 数据探索的步骤和准备 2. 缺失值处理 为什么需要处理缺失值 Why data has missing values? 缺失值处理的技术 3. 异常值检测和处理 What is an ou ...

  6. 深入浅出数据分析 Head First Data Analysis Code 数据与代码

    <深入浅出数据分析>英文名为Head First Data Analysis Code, 这本书中提供了学习使用的数据和程序,原书链接由于某些原因不 能打开,这里在提供一个下载的链接.去下 ...

  7. 数据分析---《Python for Data Analysis》学习笔记【04】

    <Python for Data Analysis>一书由Wes Mckinney所著,中文译名是<利用Python进行数据分析>.这里记录一下学习过程,其中有些方法和书中不同 ...

  8. 数据分析---《Python for Data Analysis》学习笔记【03】

    <Python for Data Analysis>一书由Wes Mckinney所著,中文译名是<利用Python进行数据分析>.这里记录一下学习过程,其中有些方法和书中不同 ...

  9. 数据分析---《Python for Data Analysis》学习笔记【02】

    <Python for Data Analysis>一书由Wes Mckinney所著,中文译名是<利用Python进行数据分析>.这里记录一下学习过程,其中有些方法和书中不同 ...

随机推荐

  1. 备份和还原 第三篇:master 数据库的备份和还原

    在SQL Server 中,master 数据库记录系统级别的元数据,例如,logon accounts, endpoints, linked servers, and system configur ...

  2. 全栈项目|小书架|服务器端-NodeJS+Koa2 实现搜索功能

    搜索功能会包含:热搜.搜索列表. 热搜功能在电商的搜索中经常看到,热搜数据的来源有两种 用户真实的搜索数据,根据算法进行排序 人为推送的数据 想想微博热搜是可以买的就知道热搜功能多么重要了. 我采用第 ...

  3. Unity - 简单实现音频管理系统

    简单实现Unity音频管理脚本,便于长短音频的播放控制和音量控制等,核心方法为对象池的应用. 项目地址:AudioPlay - SouthBegonia 包含方法: 持有所有 AudioSource ...

  4. AspNetCore MVC页面数据提交验证

    2019/05/14,AspNetCore 2.2.0 摘要:AspNetCore MVC使用数据注释配合jquery.validate提交页面进行前端加后端的数据验证 主要用到了jquery.val ...

  5. Fluentdata详解

    Fluentdata 轻型orm 仅仅一个cs文件 创建并且初始化一个IDbContext. 二选一 public IDbContext Context() { return new DbContex ...

  6. Tomcat组件梳理—Service组件

    Tomcat组件梳理-Service组件 1.组件定义 Tomcat中只有一个Server,一个Server可以用多个Service,一个Service可以有多个Connector和一个Contain ...

  7. Django模板语言的学习

    1.模板系统 1.语法 1.变量相关 {{ name}} ,{{ name|length}}, {{ name |default:"默认值"}} 2.逻辑相关 1.if判断 {% ...

  8. 图像平移 cv.warpAffine()函数用法

    # 图像平移image1='C:\\Users\\10107472\\Desktop\\myfile\\tensorflow-yolov\\read.jpg'img = cv.imread(image ...

  9. python ocr中文识别库 tesseract安装及问题处理

    这个破东西,折腾了快1个小时,网上的教材太乱了. 我解决的主要是windows的问题 先下载exe.(一看到这个,我就有种预感,不妙) https://digi.bib.uni-mannheim.de ...

  10. 【开发工具】-解决Myeclipse 的 Server窗口报空指针错误

    Eclipse 或者 MyEclipse  查看 server面板的时候,报错,如图所示,错误 代码:java.lang.NullPointerException .另外,由于此错误,导致 项目不能够 ...