数据治理技术之数据清洗

news2024/10/5 21:22:17

数据清洗背景

数据质量一般由准确性、完整性、一致性、时效性、可信性以及可解释性等特征来描述,根据 Rahm 等人在 2000 年对数据质量基于单数据源还是多数据源以及问题出在模式层还是实例层的标准进行分类,将数据质量问题分为单数据源模式层问题、单数据源实例层问题、多数据源模式层问题和多数据源实例层问题这4大类。

现实生活中的数据极易受到噪声、缺失值和不一致数据的侵扰,数据集成可能也会产生数据不一致的情况。数据清洗就是识别并且(可能)修复这些“脏数据”的过程,如果一个数据库数据规范工作做得好会给数据清洗工作减少许多麻烦。

对于数据清洗工作的研究基本上是基于相似重复记录的识别与剔除方法展开的。

并且以召回率和准确率作为算法的评价指标,现有的清洗技术大都是孤立使用的。

不同的清洗算法作为黑盒子以顺序执行或以交错方式执行,而这种方法没有考虑不同清洗类型规则之间的交互简化了问题的复杂性,但这种简化可能会影响最终修复的质量,因此需要把数据清洗放在上下文中结合端到端质量执行机制进行整体清洗。

随着大数据时代的到来,现在已经有不少有关大数据清洗系统的研究,不仅有对于数据一致性以及实体匹配的研究,也有基于MapReduce的数据清洗系统的优化研究。

数据清洗基本方法

从微观层面来看,数据清洗的对象分为模式层数据清洗和实例层数据清洗,数据清洗识别并修复的“脏数据”主要有错误数据、不完整的数据以及相似重复的数据,根据“脏数据”分类,数据清洗也可以分为 3 类:属性错误清洗、不完整数据清洗以及相似重复记录的清洗。

3.2.1 属性错误清洗

数据库中很多数据违反最初定义的完整性约束,存在大量不一致的、有冲突的数据和噪声数据。我们应该识别出这些错误数据,然后进行错误清洗。

(1)属性错误检测

属性错误检测有基于定量的方法和基于定性的方法。

  定量的误差检测一般在离群点检测的基础上采用统计方法来识别异常行为和误差,离群点检测是找出与其他观察结果偏离太多的点,Aggarwal 将关于离群点检测方法又分为 6 种类型:极值分析、聚类模型、基于距离的模型、基于密度的模型、概率模型、信息理论模型,并对这几种模型进行了详尽的介绍;

  定性的误差检测一般依赖于描述性方法指定一个合法的数据实例的模式或约束,因此确定违反这些模式或者约束的就是错误数据。

图 4 描述了定性误差检测技术在 3 个不同方面的不同分类下面我们对图中提出的3 个问题进行分析。

   首先.错误类型是指要检测什么。定性误差检测技术可以根据捕捉到的错误类型来进行分类,目前大量的工作都是使用完整性约束来捕获数据库应该遵守的数据质量规则,虽然重复值也违反了完整性约束,但是重复值的识别与清洗是数据清洗的一个核心;

其次,自动化检测根据人类的参与与否以及参与步骤来对定性误差检测技术进行分类,大部分的检测过程都是全自动化的,个别技术涉及到人类参与;

最后,,商业智能层是指在哪里检测,错误可以发生在数据治理的任何阶段,大部分的检测都是针对原始数据库,但是有些错误只能在数据治理后获得更多的语义和业务逻辑才能检测出来。

不仅可以使用统计方法来对属性错误进行检测,使用一些商业工具也可以进行异常检测,如数据清洗工具以及数据审计工具等。Potters Wheel是一种公开的数据清洗工具,不仅支持异常检测,还支持后面数据不一致清洗所用到的数据变换功能。

(2)属性错误清洗

属性错误清洗包括噪声数据以及不一致的数据清洗。

噪声数据的清洗也叫光滑噪声技术,主要方法有分箱以及回归等方法,分箱方法是通过周围邻近的值来光滑有序的数据值但是只是局部光滑,回归方法是使用回归函数拟合数据来光滑噪声;

不一致数据的清洗在某些情况下可以参照其他材料使用人工进行修改,可以借助知识工程工具来找到违反限制的数据。

3.2.2不完整数据清洗

在实际应用中,数据缺失是一种不可避免的现象,有很多情况下会造成数据值的缺失,例如填写某些表格时需要填写配偶信息,那没有结婚的人就无法填写此字段,或者在业务处理的稍后步骤提供值,字段也可能缺失。处理缺失值目前有以下几种方法:

忽略元组:一般情况下,当此元组缺少多个属性值时常采用此方法,否则该方法不是很有效,当忽略了此条元组之后,元组内剩下的有值的属性也不能被采用,这些数据可能是有用的;

人工填写缺失值:这种方法最大的缺点就是需要大量的时间和人力,数据清理技术需要做到最少的人工干预,并且在数据集很大、缺失很多属性值时,这种方法行不通;

全局变量填充缺失值:使用同一个常量来填充属性的缺失值,这种方法虽然使用起来较为简单,但是有时不可靠,例如,用统一的常量“NULL”来填写缺失值,在后续的数据挖掘中,可能会认为它们形成了一个有趣的概念;

中心度量填充缺失值:使用属性的中心度量来填充缺失值,中心度量是指数据分布的“中间”值;

使用最可能的值填充:相当于数值预测的概念,回归分析是数值预测最常用的统计学方法,此外也可以使用贝叶斯形式化方法的基于推理的工具或决策树归纳确定缺失值。

3.2.3相似重复记录清洗

相似重复记录识别

消除相似重复记录,首先应该识别出相同或不同数据集中的两个实体是否指向同一实体,这个过程也叫实体对齐或实体匹配。文本相似度度量是实体对齐的最基础方法,大致分为 4 种:基于字符的、基于单词的、混合型和基于语义的。

随着知识表示学习在各个领域的发展,一些研究人员提出了基于表示学习的实体匹配算法,但均是以 TransE 系列模型为基础构建的。TransEl4首次提出基于翻译的方法。将关系解释为实体的低维向量之间的翻译操作,随之涌现出一些扩展的典型算法,下面对这些算法进行简单介绍。

1.MTransE 算法:基于转移的方法解决多语言知识图谱中的实体对齐。首先使用 TransE 对单个的知识图谱进行表示学习;接着学习不同空间的线性变换来进行实体对齐,转移方法有基于距离的轴校准、翻译向量、线性变换这 3 种。该知识模型简单复用 TasE,对于提高实体对齐的精度仍存在很大局限;
2.JAPE 算法:是针对跨语言实体对齐的联合属性保护模型,利用属性及文字描述信息来增强实体表示学习,分为结构表示、属性表示。IPTransE 算法使用联合表示的迭代对齐,即使用迭代的方式不断更新实体匹配。该方法分为 3 部分:知识表示、联合表示、迭代对齐,但这两种算法都是基于先验实体匹配,将不同知识图谱中的实体和关系嵌入到统一的向量空间,然后将匹配过程转换成向量表示间距离的过程;

3.SEEA 算法分为两部分:属性三元组学习、关系三元组学习。该模型能够自学习,不需要对齐种子的输入,每次迭代根据前面迭代过程所得到的表示模型,计算实体向量间的余弦相似度,并选取前B对添加到关系三元组中更新本次表示模型,直到收敛。收敛条件:无法选取前β对实体对。

实体对齐方法不仅应用于数据清洗过程中,对后续的数据集成以及数据挖掘也起到重要的作用。除此之外也有很多重复检测的工具可以使用:如Febrl系统、TAILOR工具、WHIRL系统、BigMatch等。

相似重复记录清洗

相似重复记录的清洗一般都采用先排序再合并的思想,代表算法有优先队列算法、近邻排序算法、多趟近邻排序算法。

优先队列算法比较复杂,先将表中所有记录进行排序后,排好的记录被优先队列进行顺序扫描并动态地将它们聚类,减少记录比较的次数,匹配效率得以提高,该算法还可以很好地适应数据规模的变化。

近邻排序算法是相似重复记录清洗的经典算法,采用滑动窗口机制进行相似重复记录的匹配,每次只对进入窗口的 w 条记录进行比较,只需要比较 w*N 次,提高了匹配的效率。但是它有两个很大的缺点:首先是该算法的优劣对排序关键字的依赖性很大,如果排序关键字选择得不好,相似的两条记录一直没有出现在滑动窗口上就无法识别相似重复记录,导致很多条相似重复记录得不到清洗;其次是滑动窗口的值 w也很难把控,w值太大可能会产生没必要的比较次数,w 值太小又可能会遗漏重复记录的匹配。

多趟近邻排序算法是针对近邻排序算法进行改进的算法,它是进行多次近邻排序算法每次选取的滑动窗口值可以不同,且每次匹配的相似记录采用传递闭包,虽然可以减少很多遗漏记录,但也会产生误识别的情况,这两个算法的滑动窗口值和属性值的权重都是固定的,所以也有一些专家提出基于可变的滑动窗口值和不同权重的属性值来进行相似重复记录的清洗。

以上算法都有一些缺陷,如都要进行排序,多次的外部排序会引起输入/输出代价过大;其次由于字符位置敏感性,排序时相似重复的记录不一定排在邻近的位置,对算法的准确性有影响。

本文引用软件学报吴信东,董丙冰,杨威《数据治理技术》,有删减,有改动,如有侵权,请联系删除。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1246843.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Vatee万腾科技新高峰:Vatee前瞻性创新的数字化之力

Vatee万腾科技,一家以前瞻性创新为核心驱动力的数字化引领者,正迈向新的高峰。其在科技领域的卓越表现不仅体现在技术实力上,更展现在对未来的深刻洞察和独到思考上。 在Vatee的科技舞台上,前瞻性创新如一道独特的光芒&#xff0c…

【Linux】make/Makefile 进度条小程序

目录 一,认识 make/makefile 二,实例代码 1,依赖关系 2,原理 3,项目清理 4,测试讲解 三,Linux第一个小程序-进度条 game.h game.c test.c 程序详解 一,认识 m…

管易云与金蝶云星空对接集成其他出库查询连通其他出库新增(其他出库单)

管易云与金蝶云星空对接集成其他出库查询连通其他出库新增(其他出库单) 数据源系统:管易云 管易云是上海管易云计算软件有限公司旗下的专注提供电商企业管理软件服务的品牌,总部位于中国上海张江高科技产业园区。管易云旗下拥有管易云C-ERP、EC-OMS、EC-WMS、B2C/B2…

【Vue】浏览器安装vue插件

首先看一下安装之后的效果&#xff0c;再考虑一下要不要安装 安装完之后&#xff0c;打开浏览器控制台&#xff08;ctrl shift j) <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><title>Title</t…

无人智能柜:经营成本低,运维智能化

在现代商业领域中&#xff0c;无人智能柜正逐渐崭露头角&#xff0c;成为一种具有前景的商业模式。其独特之处在于经营成本的低廉性和运维过程的智能化。相较于传统的便利店等实体店铺&#xff0c;无人智能柜在运营过程中不仅能够降低成本&#xff0c;还能够实现高效的运维管理…

内网渗透之Linux权限提升大法

文章目录 内网渗透|Linux权限提升大法0x01 前言0x02 工具介绍1.traitor2.LinEnum3.linux-exploit-suggester.sh4.Linux Exploit Suggester 25.beroot 0X02提权手法1.环境变量提权2.利用suid提权3.定时任务提权3.1定时任务文件覆盖提权3.2定时任务tar命令通配符注入提权 4.sudo提…

5分钟搞定!学会使用pytest测试框架!

本文将会把关于 Pytest 的内容分上下两篇&#xff0c;上篇主要涉及关于 pytest 概念以及功能组件知识的介绍&#xff0c;下篇主要以一个 Web 项目来将 Pytest 运用实践中。 为什么要做单元测试 相信很多 Python 使用者都会有这么一个经历&#xff0c;为了测试某个模块或者某个…

Opencv图像处理(全)

文章目录 博主精品专栏导航备注&#xff1a;以下源码均可运行&#xff0c;不同项目涉及的函数均有详细分析说明。11、图像项目实战&#xff08;一&#xff09;银行卡号识别 —— sort_contours()、resize()&#xff08;二&#xff09;文档扫描OCR识别 —— cv2.getPerspectiveT…

「周转箱」降低物料损耗的关键

仓储管理是企业物流系统中的重要组成部分&#xff0c;不仅涉及物品的存储、分拣、包装和配送&#xff0c;其服务质量和效率还将直接关系到企业的生产和经营效益。 在现代制造业中&#xff0c;降低物料损耗是企业追求高效生产和优化成本的关键目标之一。精益生产理念的实施为企…

火爆火爆!影响超250万读者,Python入门圣经全新升级!

人生苦短&#xff0c;快学Python&#xff01; 什么&#xff1f;你没用过&#xff0c;也没开始学习&#xff0c;甚至没有认真了解过这门语言&#xff1f;那你一定这一秒就开始发力——下面让我们先简单看看 Python 有多火。权威编程语言排行榜 TIOBE&#xff0c;2022 和 2023 都…

讲概念谈愿景AI Agent名不副实?看实在智能RPA Agent智能体如何落地!

OpenAI在首届开发者大会上推出了GPTs和Assitant API&#xff0c;不仅改写了AI Agent的构建范式&#xff0c;也把AI智能体的应用推向一个新高潮。GPTs和GPT商店&#xff0c;使得用户无需编码通过自然语言就能创建并拥有多个专属私人助理&#xff0c;且可以如在苹果应用商店一样在…

AI——有什么人类工作是人工智能代替不了的?

虽然人工智能科技的发展在许多方面对人类有着极大的帮助&#xff0c;有些工作能被自动化取代&#xff0c;但仍然有许多工作是人工智能无法代替的&#xff1a; 1. 创作性工作&#xff1a;例如艺术家、作家、音乐家&#xff0c;虽然AI可以模仿创作&#xff0c;但创新和独特个体的…

Jetson orin(Ubuntu20.04)不接显示器无法输出VNC图像解决办法以及vnc安装记录

sudo apt install vino 好像Jetpack 5.0中已经自带了。。 配置VNC server: gsettings set org.gnome.Vino prompt-enabled false gsettings set org.gnome.Vino require-encryption false 编辑org.gnome,增加一个“enabled key”的参数&#xff1a; cd /usr/share/glib-2…

HarmonyOS 设备管理开发:USB 服务开发指导

基本概念 USB 服务是应用访问底层的一种设备抽象概念。开发者根据提供的 USB API&#xff0c;可以获取设备列表、控制设备访问权限、以及与连接的设备进行数据传输、控制命令传输等。 运作机制 USB 服务系统包含 USB API、USB Service、USB HAL。 图 1 USB 服务运作机制 ●…

Jmeter接口测试——使用教程(上)

前言 jmeter是一款小巧&#xff0c;轻便、开源的性能测试工具&#xff0c;它也可以很方便的进行接口测试。 下面我就带大家学习下jmeter接口测试。 一、Jmeter简介 Jmeter是apache公司基于java开发的一款开源压力测试工具&#xff0c;体积小&#xff0c;功能全&#xff0c;使…

MobaXterm连接节点一段时间后超时Session stopped

1、MobaXterm &#xff08;1&#xff09;设置ssh 超时时间 &#xff08;2&#xff09;设置保持连接 如果服务器端设置了超时时间&#xff0c;会以服务器为准&#xff0c;具体设置&#xff1a; 2、服务端 cat /etc/ssh/sshd_config | grep "ClientAlive" 可以把设置…

VOC数据集转换为COCO数据集

VOC数据集格式 get_list.py import os import random import shutil# 设置随机种子 random.seed(1000)# 判断Annotations和JpegImages是否对应 train_precent=0.8 label_path= "../../Annotations" print(os.path.abspath(label_path)) save="../Main" pr…

Ubuntu开机显示recovering journal,进入emergency mode

在一次正常的shutdown -r now之后&#xff0c;服务器启动不起来了&#xff0c;登录界面显示recovering journal&#xff0c;主要报错信息如下所示&#xff1a; /dev/sda2:recovering journal /dev/sda2:Clearn... You are in emergency mode. After logging in, type journalc…

小程序:用户查找英语单词的意思 ← Python字典

【程序分析】 ● 字典中的条目是没有顺序的。 ● 可以对字典使用如下方法&#xff1a; keys()、values()、 items()、 clear()、 get(key)、 pop(key) 和popitem()【程序代码】 dictionary{"dog":"狗","apple":"苹果","banana&q…

基于51单片机倾角MPU6050老人跌倒远程GSM短信报警器+源程序

一、系统方案 1、本设计采用这51单片机作为主控器。 2、MPU6050角度值送到液晶1602显示。 3、红外传感器检测心率。 4、跌倒远程GSM报警。 二、硬件设计 原理图如下&#xff1a; 三、单片机软件设计 1、首先是系统初始化 void LCD_Init() //初始化液晶时间显示 { write_com…