博客 浅析数据剖析对于数据质量评估的价值

浅析数据剖析对于数据质量评估的价值

   小美   发表于 2023-01-30 15:08  403  0

 数据剖析是开展数据质量初始评估的重要技术手段。结合数据特征剖析结果与所掌握的质量预期,证明或证伪关于数据质量的假设和线索,获取质量问题存在的形式和严重程度,为下一阶段数据质量实施提供指导。

http://dtstack-static.oss-cn-hangzhou.aliyuncs.com/2021bbs/files_user6/article/07042b6e720a4f0964f8d7ead0f81d1f..jpg


Data profile可翻译为数据剖析或数据探查,是借助统计学知识和技术手段对数据进行描述性与探索性分析。剖析提供了数据结构、内容、规则和关系等的一个概况,具体内容包括:数据类型、内容长度分布、值域、内容基数、格式、隐含规则等。

在成熟的BI工具中,数据加工模块都会内置此类功能,用于分析师了解加载数据的数据特征,辅助其数据应用设计或数据的加工处理;在前沿的数据治理工具中,数据质量、数据标准等模块也包含了类似数据剖析工具,用于数据质量评估分析。


本文将借助Python工具(pandas_profiling),以2019年1月的一份北京朝阳地区房源数据为样本进行数据剖析,通过对剖析结果的分析和解读,识别存在的数据质量问题,作为数据质量初始评估结论。


01 数据质量问题评估


在数据质量提升项目中,一份高质量的数据质量问题评估报可帮助项目合理选择实施范围、制定相应工作计划,取得项目成功。
数据质量需求来源包括企业各数据应用部门调研反馈、运维事件、未被满足的数据应用需求等,但通过质量需求分析不能完全反映数据质量问题的分布和存在程度,在一些经典数据治理理论和方法中,也强调了利用数据剖析开展数据质量问题评估重要性。


02 Python分析环境准备


数据分析与处理是企业数据质量工作从业者的必备基础技能。本文简单概述一下Python环境下开展数据剖析过程,详情可百度获取所需信息。
1、安装Python
工具下载地址:
2、安装panda_profiling包
  在cmd窗口执行如下分析包安装命令。
pip install pandas_profiling

http://dtstack-static.oss-cn-hangzhou.aliyuncs.com/2021bbs/files_user6/article/0463080960e6012260bdb713a1614159..jpg


3、准备需要剖析的数据集
  以2019年1月份朝阳地区部分房源数据为例(来源:房产公司公布信息)。

http://dtstack-static.oss-cn-hangzhou.aliyuncs.com/2021bbs/files_user6/article/b04ec5216cf41ee204ee85a8486e4b89..jpg


4、生成数据剖析结果并导出为html文件
打开Python编译器 Jupyter Notebook,执行如下处理代码。
# 导入pandas_profiling分析包from pandas_profiling import ProfileReport#导入数据分析基础包import pandas as pd#定义并生导入需要分析的数据集df = pd.read_excel('E:\\LX\\北京市XX地区房源信息201901-质量剖析示例.xlsx',sheet_name='DQ_TEST')#定义并生成分析报告profile = ProfileReport(df,title="房屋源数据分析",explorative=True)#导出分析报告profile.to_file("房屋源数据分析202210-3.html")


03 剖析结果展示与解读


数据剖析是基于统计学相关方法,对数据集中的数据项进行特征分析,不包含企业相关业务规则逻辑,需要数据质量分析师结合企业业务知识、数据标准、数据常识等对剖析结果进行解读,提炼有价值的信息作为数据质量问题评估依据。

Python剖析分析报告内容主要包括两部分:概要统计、信息项分析。其中信息项分析根据字段类型不同会有若干差异化的二级分析信息。在质量问题解读时,需要根据业务对数据质量的期望,对照剖析各项信息识别存在的质量问题。

  • (一)概要统计

概要统计包含三部分,数据集概要、告警提醒以及分析参数。

1、数据集概要

http://dtstack-static.oss-cn-hangzhou.aliyuncs.com/2021bbs/files_user6/article/ea234731a24bc306e5ef3d217cfa1516..jpg

    数据集概要信息:

Number of variables :数据集字段数量

Number of Observations :数据集记录条数

Missing cells:为空的表格单元数

Missing cells(%):空单元格占比,   空单元格/总单元格 *100%

Duplicate rows: 重复记录数

Duplicate rows(%): 重复记录数占比, 重复记录数/总记录数 *100%

Total size in memory:数据集大小

Average record size in memory:平均每条记录的大小

    字段类型:

Categorical:具有枚举值特征的字段

URL:具有URL地址特征的字段

Numeric:数值类字段

DateTime:日期类字段

其他类型:Date、Text、Boolean等。

    数据质量问题解读:

通过对数据集整体概括性统计,让分析人员了解整体情况,包括存在的一些明显数据质量问题。分析示例如下:

  •  字段填充性检查
在质量分析前,数据集中包含的一般为关键数据项,若Missing cells数量或占比较大,则隐含数据质量风险,以此为线索查看分析具体字段的统计信息。
  •  重复记录检查
业务实体信息或交易记录一般都是包含业务、技术主键记录,不会存在重复记录,Duplicate rows统计信息大于0则表示存在数据质量问题,若记录数或占比很大也许需要考虑数据集是否错误。
  • 数据项类型分布
Python根据数据项内容进行分类,包括Date、DateTime、Numeric等,与企业关系型数据库类型可以进行对照。通过类型分布识别可能存在的隐含数据定义错误,如预期数据集中日期类型信息项有5个,但统计分析日期类型有3个,则可能代表一些预期存储日期的数据项实际存储的是其它内容,属于典型数据质量问题。

2、告警提醒:

http://dtstack-static.oss-cn-hangzhou.aliyuncs.com/2021bbs/files_user6/article/13662524c2316e8bcee33987da87cfdf..jpg

    告警信息

显著特征提醒包含数据项内容的基数特征、数据项之间相关性给出数据特征提醒。

Constant:单一基数信息项,该信息项只包含一个有效填充值

Hight cardinality:高基数信息项,绝大部分填充值互不相同

Hight correlation:信息项之间存在高度关联

    数据质量问题解读

基数(cardinality)是一个数学术语,是指“在一个集合或其它分组中作为分组属性的元素个数”。在数据质量分析场景下,通过对数据项基数统计情况与业务比对,可识别存在的数据质量风险。如基数等于1表示该数据项只有一个值,这可能代表该数据项无效或存在质量问题,也有可能表示该数据集是一个子集或新启用的字段,如本次演示使用的数据集是亚运村地区房源信息,则区域area中只有一个填充值“亚运村”,若对数据集预期是包含整个朝阳区或北京的房源,则显然数据集存在不完整的质量风险。

3、分析参数

http://dtstack-static.oss-cn-hangzhou.aliyuncs.com/2021bbs/files_user6/article/b73df5a958df58c61f4bcfc3c350daa3..jpg

展示分析报告技术信息,包括分析开始、结束时间,用时时长、分析的软件包版本、分析配置文件信息。


  • (二)信息项分析

根据信息项类型差异化展示信息项分析信息。以下结合几类典型业务场景结合信息项。

1、房源序号(主键)

http://dtstack-static.oss-cn-hangzhou.aliyuncs.com/2021bbs/files_user6/article/861d9efe62743c34ccc1856d0402cdb2..jpg

数据集一般包含系统主键、候选键数据项,根据数据项主键属性以及组成规则识别存在的数据质量问题线索。以此次采集房屋源信息为例,在相关规范和要求中描述为:seqno为主键,由A + 4位流水号组成,以此规则,可解读出问题包括:

  • 主键不唯一:Distinct(%)不等于100%,则表示存在重复记录。

  • 组成规则不符合要求:length应该等于5,存在的其它长度记录为异常。

2、房源地址
http://dtstack-static.oss-cn-hangzhou.aliyuncs.com/2021bbs/files_user6/article/165aaf9114db3469050e6c4fd021ece2..jpg
地址是房源信息的重要业务主键,是开展基于房源业务活动基础。通过剖析结果解读,可识别如下问题:
  • 存在重复记录:Unique(%)不为100%表明存在重复或录入错误原因导致的地址相同房源。
  • 存在为空记录:Missing值大于0表示存在空,意味着可能是一条无效记录,没有具体地址的房源无法支持相关业务开展。
  • 地址不合理:根据常识地址的描述长度一般在10到30字符之间,Max Length、Min Length统计结果表明存在录入无效记录(过短或超长)。
3、房屋朝向
http://dtstack-static.oss-cn-hangzhou.aliyuncs.com/2021bbs/files_user6/article/c2148b211d5d2fac1e4d00fa5b52b4f8..jpg
http://dtstack-static.oss-cn-hangzhou.aliyuncs.com/2021bbs/files_user6/article/ced021cd0c84b816cfa3e754451d7ffe..jpg
房屋朝向是评估房源价值的重要指标,对房屋朝向的描述一般用“坐X朝X”描述,按照实际情况可穷举出有限的选项。从以上剖析结果可解读出:
  • 存在为空记录:Missing大于0,存在为空的异常记录。
  • 包含空格:通过枚举值分布统计图,“南 北”之间存在空格,不符合一般信息填充原则,对比其它填写的枚举值均不包含空格。
  • 填充标准缺失:根据经验房屋朝向描述枚举值不超过10个,从Distinct值以及内容分布柱形图统计,分类超过30个。


4、房屋总价
http://dtstack-static.oss-cn-hangzhou.aliyuncs.com/2021bbs/files_user6/article/875a526cb912dcf4b68ccac61b0014f0..jpg
http://dtstack-static.oss-cn-hangzhou.aliyuncs.com/2021bbs/files_user6/article/1ad61560a70b3e3e1fecb819755cce78..jpg

房屋总价是数值类型,分析报告包含数值相关剖析信息,结合对北京当年房价了解的社会通识,可识别如下数据质量线索:

  • 数值过低:在北京整体房价不足百万与常理不符,Minnum=40 大概率为问题数据。

  • 数值过高:通过数值分布直方图Histogram,大部分数值在2000以内,少数范围外数据需要结合其它字段进一步判断,是否存在录入错误情况。

5、数据采集日期
http://dtstack-static.oss-cn-hangzhou.aliyuncs.com/2021bbs/files_user6/article/48e309eae6bf3b7053188ead253c147d..jpg
采集日期是表达相关房源信息权威性的重要属性。收集此表是2019年1月,结合日期特性分析,可识别如下质量问题:
  • 日期为空:数据采集日期不可为空,Missing大于0则存在质量问题。
  • 无效日期:表格为2019年1月采集,采集日期不能在此之后,Maximum大于此日期则为无效记录,通过直方图Histogram,无效记录集中在2020年1月,需要核实产生原因。

 

04 结束语


数据质量是很多企业开展数据治理的重要驱动力,但在具体实践过程中,由于与业务缺乏直接关联、质量问题识别不完整、根因分析与治理不彻底、评估与量化分析缺失等原因,质量工作未能取得“期望”的成绩,导致数据治理成为一个脏活、累活。企业数据质量工作长期处于被动的、由特定事件驱动执行状态。

本次数据剖析是从数据质量问题识别角度,分享借助相关技术工具,深入全面开展质量问题分析的一个方法。通过剖析出的数据特征情况结合业务规则、数据标准、常识等,解读识别存在的数据质量问题线索,为高质量开展数据质量工作提供一个方法参考。

免责申明:

本文系转载,版权归原作者所有,如若侵权请联系我们进行删除!


想了解或咨询更多有关袋鼠云大数据产品、行业解决方案、客户案例的朋友,浏览袋鼠云官网:https://www.dtstack.com/?src=bbs

同时,欢迎对大数据开源项目有兴趣的同学加入「袋鼠云开源框架钉钉技术群」,交流最新开源技术信息,群号码:30537511,项目地址:https://github.com/DTStack

0条评论
社区公告
  • 大数据领域最专业的产品&技术交流社区,专注于探讨与分享大数据领域有趣又火热的信息,专业又专注的数据人园地

最新活动更多
微信扫码获取数字化转型资料
钉钉扫码加入技术交流群