前面的两篇文章——分析的前提—数据质量1和分析的前提—数据质量2分别介绍了通过Data Profiling的方法获取数据的统计信息,并使用Data Auditing来评估数据是否存在质量问题,数据的质量问题可以通过完整性、准确性和一致性三个方面进行审核。这篇文章介绍最后一块内容——数据修正(Data Correcting)

数据审核帮助我们发现数据中存在的问题,而这些问题有时候可以利用一些方法就行修正,从而提升数据的整体质量,数据修正就是为了完成这个任务,可以从以下几个方面进行修正:

填补缺失值

对于记录缺失的问题,最简单的办法就是数据回补。一般而言统计指标数据缺失可以从原始数据中重新统计获取,而原始数据缺失可以从抽取的数据源或者备份数据中回补。如果原始数据完全丢失,基本就回天无力了。

对于字段值的缺失,很多资料都会介绍使用一些统计学的方法进行修补,其实就是对缺失值的预测或者估计,一般会使用平均数、众数、前后值取平均等方法,或者使用回归分析的方法拟合指标的变化趋势后进行预测。这些方法在缺失值无法使用其他途径找回或者重新统计计算,并且在缺失值有变化规律可循的前提下都是可取的,当某天的指标值丢失时可以通过这类方法根据前几天的数据来预估该天的数值。但很多时候网站分析中如果底层的日志存在缺失值,我们很难预测具体的缺失值,因为访问的细节几乎是无迹可寻的,所以对于访问记录存在缺失值并且这些字段的缺失会明显影响一些统计指标的计算时,最简单的方法就是舍弃该记录,但这种直接过滤掉缺失记录的方法一些只会用于访问日志等不需要非常精确的数据上,如果是网站的运营、交易等这些需要保证完全计算准确的数据绝对是不能直接舍弃的,而且对于访问日志中缺失或者异常记录的过滤也需要基于对这类数据的统计基础上,一般的原则是不太重要的字段如果缺失或者异常的记录占比小于1%或者5‰的情况下可以选择过滤这些记录,如果占比比较高,需要进一步排查日志记录是否存在问题。

删除重复记录

数据集里面某些字段的值必然是唯一的,比如按天统计的指标值中的日期字段,用户信息表的用户ID等,这些需要保证唯一的规则可以对数据库设置唯一约束,但我们在做ETL处理时,有时为了保证数据加载全过程可以不因为违反唯一约束而中断(有时Load的过程需要较长的时间或处理成本,ETL需要有容错能力以保证整个过程不被中断)会先忽略重复记录,待整个ETL过程结束后再对需要保证唯一的字段进行去重处理。

这些重复记录可以比对Data Profiling中数据统计信息的唯一值个数和记录总数是否一致进行审核,而进行修正的最简单办法就是重复记录仅保留一条,删除其他记录。这个需要根据现实情况,有时也可能使用把重复记录的统计量相加的方法进行去重。

转化不一致记录

数据的转化是数据仓库抽取数据过程中最常见的处理,因为数据仓库“集成性”的特征,需要把来自多个数据源的数据集中存入数据仓库,而不同数据源对某些含义相同的字段的编码规则会存在差异,比如用户ID,虽然是相同的用户,但可能A系统的ID是u1001,B系统是1001,C系统是100100,来源于这三套系统的用户ID就需要统一,比如我们将A数据源的u前缀去除,C系统ID除100后统一成B系统的编码方式一起导入数据库;即使是来源于同一套日志,也可能存在记录的不一致,比如之前遇到较早发布的产品版本记录的日志中移动操作系统是Android,而版本更新后记录改成了android,新老版本的日志打到了一起,于是也会涉及数据的转化,但这种记录的不一致性无疑会增加ETL的处理成本。

上面举例的转化规则是比较简单的,在数据仓库的ETL处理数据转化时可能会遇到一些很BT的规则,这个时候最关键的还是对数据源记录方式足够的熟悉,这样才能保证进入数据仓库的数据是一致的。最好的做法就是数据仓库的开发工程师与其他前台系统的开发人员能事先约定一套统一的数据记录和编码的方式,这样可以减少后期的协调沟通和转化处理成本。

处理异常数据

异常数据大部分情况是很难修正的,比如字符编码等问题引起的乱码,字符被截断,异常的数值等,这些异常数据如果没有规律可循几乎不可能被还原,只能将其直接过滤。

有些数据异常则可以被还原,比如原字符中参杂了一些其他的无用字符,可以使用取子串的方法,用trim函数可以去掉字符串前后的空格等;字符被截断的情况如果可以使用截断后字符推导出原完整字符串,那么也可以被还原,比如移动操作系统的记录一般包括Symbian、Android、iPhone、BlackBerry等,如果某些记录的是And,那么可以被还原成Android,因为其他的移动操作系统被截断不可能出现And这种记录。数值记录中存在异常大或者异常小的值是可以分析是否数值单位差异引起的,比如克和千克差了1000倍,美元和人民币存在汇率的差异,时间记录可能存在时区的差异,百分比用的是小于1的小数还是已经乘了100等等,这些数值的异常可以通过转化进行处理,数值单位的差异也可以认为是数据的不一致性,或者是某些数值被错误的放大或缩小,比如数值后面被多加了几个0导致了数据的异常。

最后,总结一下数据可修正的前提:

  1. 数据质量的问题可以通过Data Auditing的过程被审核出来;
  2. 数据的问题必须有迹可循,可以通过趋势进行预测或者可以通过一些规则进行转换还原。否则,对于异常数据只能直接进行删除丢弃,但进行数据过滤之前必须评估异常记录的比例,当占比过高时需要重新审核原始数据的记录方式是否存在问题。

原文

http://webdataanalysis.net/data-collection-and-preprocessing/data-quality-3/

数据质量管理—3、数据修正(Data Correcting)相关推荐

  1. 工业时序大数据质量管理

    工业时序大数据质量管理 丁小欧,王宏志,于晟健  哈尔滨工业大学海量数据计算研究中心,黑龙江 哈尔滨 150001 摘要:工业大数据已经成为我国制造业转型升级的重要战略资源,工业大数据分析问题正引起重 ...

  2. 企业数仓DQC数据质量管理实践篇

    一.数据质量管理背景 以大数据平台的核心理念是构建于业务之上,用数据为业务创造价值.大数据平台.数据仓库的搭建之初,优先满足业务的使用需求,数据质量往往是被忽视的一环.但随着业务的逐渐稳定,数据质量越 ...

  3. 数据治理-数据质量-数据质量管理方法和工具

    常用质量管理工具 目前,在质量管理领域,有一系列常用的数据质量管理工具,主要分为传统的质量管理工具.新的质量管理工具和其他质量管理工具. 传统的质量管理七大工具 传统的七种工具包含分层法.检查表.帕累 ...

  4. 从数据中台实践,浅谈数据质量管理

    时代背景 近20年来,我国的科学技术发展日新月异,各种新兴技术层出不穷,深刻的改变着各行各业,也改变着我们的生活.大数据.云计算.人工智能的出现更是将技术革命推向了高潮.在这种背景下,继农业经济.工业 ...

  5. 数据质量管理方案DQ

    1 范围 本标准规定了XX公司数据质量管理内容.管理机制和工作流程.本标准适用于XX所有项目整个生命周期的数据质量管理,非项目可参照使用. 2 术语和定义 下列术语和定义适用于本文件. 数据质量dat ...

  6. 【数据治理案例分享】论工业企业物料数据质量管理方法

    文章摘自[2020数据质量管理标杆奖项征集作品精选],本文荣获DQMIS2020第四届数据质量管理国际峰会之"2020数据质量创新论文奖",论文作者:王建峰. 01 物料数据质量管 ...

  7. 企业如何进行数据质量管理

    文章摘自7月9日,华矩科技数据治理系列讲座,华矩科技创始人及董事长CEO带来分享:企业如何进行数据质量管理,从数据质量认知的发展入手,分析业务和IT建设中所隐藏的常见数据质量问题,从而引出企业数据质量 ...

  8. 基于MaxCompute的数仓数据质量管理

    声明 本文中介绍的非功能性规范均为建议性规范,产品功能无强制,仅供指导. 参考文献 <大数据之路--阿里巴巴大数据实践>--阿里巴巴数据技术及产品部 著. 背景及目的 数据对一个企业来说已 ...

  9. 数据质量管理有哪些方法

    数据质量管理是数据治理中的重要步骤.这是准备数据以符合质量标准(例如有效性,均匀性,准确性,一致性和完整性)的过程.数据质量管理可从数据集中删除不需要的,重复的和不正确的数据,从而帮助分析师获得更加准 ...

  10. 数据治理:数据质量管理策略!

    数据质量管理包含正确定义数据标准,并采用正确的技术.投入合理的资源来管理数据质量.数据质量管理策略和技术的应用是一个比较广泛的范畴,它可以作用于数据质量管理的事前.事中.事后三个阶段. 数据质量管理应 ...

最新文章

  1. 京东共聚黑山县三方合力-农民丰收节·万祥军:谋定智慧农业
  2. Spring Security——简单第三方OAuth2登录自动配置——GitHub登录DEMO
  3. 【图像处理】——图像的灰度化处理(Python实现三种方法——最大值法、平均值法、加权均值法、gamma校正)
  4. autolisp 列表 resbuf
  5. 一次通过Blender2Ogre将FBK转为Mesh的失败尝试
  6. php array 数组函数,php array数组函数
  7. 利用python进行数据分析——第13章 python建模库介绍
  8. STM32——库函数版——ADXL345驱动程序
  9. BeatSaber节奏光剑双手柄MR教程
  10. 如何实现有效的项目进度控制
  11. 若依的${params.dataScope}
  12. IOS appstore 发布
  13. 超级玛丽3通关指南+隐藏点整理
  14. 火狐浏览器更新版本之后总是在当前页面打开新链接覆盖掉原先内容
  15. WEB渗透之SQL 注入
  16. 两台三菱PLC通过485通讯控制
  17. 如何制定企业数据分析管理规范
  18. 盖茨计算机,盖茨忆1979年:BASIC成为计算机普及催化剂
  19. 如何通过OCR技术识别视频和图片中的文字信息?
  20. 手机POS机支付能否挑战支付宝、微信?

热门文章

  1. java边界布局东南西北_第58节:Java中的图形界面编程-GUI
  2. android代码判断当前手机的手机号码是属于移动、联通、还是电信的
  3. [[城市]普及]支付网关,什么是支付网关,第三方支付模式
  4. RDLC报表金额数字转大写
  5. 面对阿里云、腾讯云、百度云、青云等云计算平台,大家选择的时候更看重什么?
  6. 捋一捋字符串和字节序列的关系
  7. 【设计图交接与沟通的高效平台】上海道宁为设计师与开发者提供产品团队的互联空间——Zeplin
  8. 关于UDS诊断会话管理功能相关服务的学习笔记
  9. Mac下/usr目录
  10. android-自定义锁屏界面