1 概览
1.1 EDA定义
探索性数据分析(Exploratory Data Analysis,简称EDA),是指对已有的数据(特别是调查或观察得来的原始数据)在尽量少的先验假定下进行探索,通过作图、制表、方程拟合、计算特征量等手段探索数据的结构和规律的一种数据分析方法。特别是当我们面对大数据时代到来的时候,各种杂乱的“脏数据”,往往不知所措,不知道从哪里开始了解目前拿到手上的数据时候,探索性数据分析就非常有效。探索性数据分析是上世纪六十年代提出,其方法有美国统计学家John Tukey提出的。
1.2 EDA计划
一般情况下,针对数据的探索,我们的工作主要有:
- 形成假设,确定主题去探索
- 处理“脏数据”
- 评价数据质量
- 数据报表
- 探索分析每个变量
- 探索每个自变量与因变量之间的关系
- 探索每个自变量之间的相关性
- 从不同的维度来分析数据
1.3 本文目的
工作原因,一个项目的需求是整理标签及探索数据中的模型。而大量社会数据都存在于一个数据库中,数据量巨大,一一查看数据再理解数据工作量还是比较大的,怎么才能快速的对数据质量以及数据有个初步了解是本文讲解的重点。考虑的图标的统计清晰一目了然,故做了针对数据进行梳理,做了一个EDA工具,分析从以下方面评估,快速了解数据质量,了解数据,进而进行业务等方面应用。
- 数据表的字段、类型
- 数据型字段的统计量,包含最大值、最小值、标准差、中位数,均值,众数,分位数等。
- 分类型字段统计和分布
- 缺失值占比
- 异常值检验
- 单变量分析
2 数据质量评价
该节主要介绍数据质量评估的标准及统计方式。
2.1 数据库中表统计
首先我们需要清楚库中表整体的数据质量---表是否自解释,即表以及表中的字段是否自解释(注释),主要的输出有:
1. 当前有多少表,空表数,输出空表
2. 表有解释,表中字段亦有解释
3. 表有解释,表中字段没有解释
4. 表没有解释,表中字段有解释
5. 表没有解释,表中字段亦没有解释
针对上述五点,输出相应的统计及表目录,输出2是我们关心的,后面所有的质量抽查都是2中输出的表,其他几个是该数据库中structure的质量印象,亦可以提供给客户作改进等。后面我们将会对每张表的质量进行评判。
2.2 数据表字段
对每个表的整体印象,即需要知道该表的含义,总共有多少行数据,有多少列,每列的含义及类型,数据长什么样子?以及字段的其他统计信息等。
2.2.1 数据表名
列出了表名字、注释、总共有多少行数据。
Table_Name |
Comment |
Row_Num |
|
|
|
2.2.2 数据字段
列出了表中列的名字、注释以及数据类型,并且抽查了部分数据展现。
Column_Name |
Comment |
Data_Type |
|
|
|
2.2.3 字段信息统计
分别统计表中各字段的如下信息:
count:计数 unique:不重复值的个数 top:出现频数最高的值 freq:最高的频数 fist:选择第一时间序列 last:选择最后一个时间序列 mean:平均数 std:标准差 min:最小值 max:最大值 n%:分位数
方法 列名 |
|
|
count |
|
|
unique |
|
|
top |
|
|
freq |
|
|
first |
|
|
last |
|
|
mean |
|
|
std |
|
|
min |
|
|
25% |
|
|
50% |
|
|
75% |
|
|
max |
|
|
注:本文分位数统计使用四分位数,即统计学中,把所有数值从小到大排列并分成四等份,处于三个分割点位置的得分即是四分位数。第一四分位数(Q1)即“最小四分位数”:等于样本中所有数值从小到大排列后第25%的数字;第二四分位数(Q2)即“中位数”:等于样本中所有数值从小到大排列后第50%的数字;第三四分位数(Q1)即“最大四分位数”:等于样本中所有数值从小到大排列后第75%的数字。上述表中有些统计可能为空,如只有数值型数据才有std等。
2.3 缺失值占比统计
评估缺失值数据在所有数据字段中的普遍性,评估其丢失是随机还是系统的。
2.3.1 表格统计
表格展示的为非空占比大于0的字段,其中not_null_per:字段的非空占比,not_null_count:非空的个数
Column_Name |
not_null_per |
not_null_count |
|
|
|
|
|
|
2.3.2 缺失值分布图
能够直观的查看数据分布在哪里。柱形空白即代表数据缺失,如下:
2.3.3 缺失值占比图
如图,横坐标是列名,纵坐标是数据完整性的占比
2.3.4 异常值检验
检测数值型变量的离群值,错误值,采用四分位数判定。
其中min_outlier:异常值的最小值,max_outlier:异常值的最大值,outlier_num:异常值个数。可结合变量分析中的箱型图分析,计算得到的异常值仅供参考
min_outlier |
max_outlier |
Column |
outlier_num |
|
|
|
|
2.4 单变量分析
2.4.1 数值型变量分布
字段类型为数值型,直方图横坐标为值分布,纵坐标为值的个数。统计top前10的值。
箱型图作为该字段的聚集展示,可查看异常点的分布。
如下是其中一个数值型字段的统计:
value | count |
---|---|
0.0 | 3916 |
408.23 | 1092 |
48.68 | 1049 |
19.01 | 675 |
112.53 | 517 |
19.16 | 503 |
25.96 | 477 |
142.9 | 476 |
12.0 | 423 |
25.97 | 249 |
2.5 object变量分布
对于拥有过多不同变量值的字段,统计意义较小,不进行图形化展示,我们选取分类数小于一定阈值的变量进行分布展示。字段类别较少采取饼状图显示字段:
如下:
column |
100 | 200 |
---|---|---|
percent | 0.89 | 0.11 |
2.6 高频数变量分布
对于分类数较多的变量,选取该字段内出现频数较高的进行展示。作为显著值若无分布图,表明该表字段类别数较少。
如下:
3 总结
本文基于当前的业务需求简单介绍了评价数据质量的标准,从这几个方面基本上可以看出数据的分布及质量状况。,并且可以对数据整体有一定的了解,在此基础上,对数据业务模型进行归纳总结等。比如,针对频率较高的字段、类别较少的字段等我们可以结合业务给出不同的结论等。