python数据预处理之数据清洗

来源:互联网 发布:辽阳有线淘宝营业厅 编辑:程序博客网 时间:2024/04/26 05:07

数据清洗主要是指填充缺失数据,消除噪声数据等操作,主要还是通过分析“脏数据”产生的原因和存在形式,利用现有的数据挖掘手段去清洗“脏数据”,然后转化为满足数据质量要求或者是应用要求的数据。
①上面提到了数据质量,那么何为数据质量,对于它的定义可从下面三点来看:
■数据质量指信息系统满足模式和和数据实例的实例的一致性,正确性,完整性和最小性
■数据质量是数据适合使用的程度
■数据质量是数据满足特定用户期望的程度
数据质量的特征是数据质量维度,每一数据质量维度需要不同的度量工具,主要有以下维度:
■数据规范
■数据完整性准则
■重复
■准确性
■一致性和同步
■及时性和可用性
■易用性和可维护性
■数据覆盖
■表达质量
■可理解性,相关性和可信度
在我们进行数据清洗之前,我们的手里要有数据,我们收集的过程叫数据获取。收集得到的数据我们可称之为数据源,数据源分为单数据源或多数据源。数据质量问题我们可分为单数据源问题和多数据源问题,数据质量问题出现在模式层或实例层。如下图所示:
这里写图片描述
下面让我们来分析上图所表示的意思。对于单数据源问题中模式层问题主要是由于缺少完整性约束和低水平模式设计造成的,如文件和Web数据没有数据模式,就缺少同一的模式规范,使得错误和不一致问题更易发生;可以通过改进模式设计和模式转化避免模式层问题。
单数据源问题实例层问题在模式层次上不可见,很难通过改进模式避免。比如认为的失误造成拼写错误,重复的记录,互相矛盾的字段等问题。
多数据源问题中的模式层问题除了低水平的模式设计,还存在命名冲突和结构冲突等问题。就比如在多数据源问题中,不同的对象可能使用同一个名称,同一对象可能使用不同的名称。结构冲突是由于同一对象在多数据源中的表示方式不同,例如字段类型,组织结构或完整性约束不同。
多数据源中的实例层,单数据源中在实例层出现的问题在这里可能会发生。同时还会出现矛盾问题和不一致问题。尽管多数据源中同一字段表示同一内容,但表达方式不同也会带来问题。如有的数据源可能会用“0/1”或者是“F/M”表示性别。
②数据质量问题来源可能来自以下4种:A.数据录入/更新 B.测量 C.简化 D.数据集成
③数据清洗的原理:
就是通过分析“脏数据”的产生原因及存在形式,对数据流的过程进行考察,分析并总结出一些方法(数理统计,数据挖掘或预定义规则等方法),将“脏数据”转化为满足数据质量要求的数据。
④数据清洗的基本方法:
A.缺失数据处理:缺失值问题是真实数据集中一种普遍现象,一种处理缺失值的简单方法是忽略含有缺失值的实例或属性,但是浪费的数据可能相当多,且不完整的数据集可能带来统计分析的偏差。所以需要根据数据间的关联性估计出准确的缺失值,并通过合适的方法对缺失值进行填充。可采用人工填写空缺值法手工检测并填写属性值,对于有些不影响整体数据情况的空值可以采用忽略元祖法。在特殊情况中。也可以使用属性的平均值,中间值,最大值,最小值或更为复杂的概率统计函数填充空缺值法。
B.相似重复数据检测:重复数据检测主要分为两个方面,基于字段和基于记录的重复检测。
C.异常数据处理:异常数据的探测主要有基于统计学,基于距离和基于偏离3类方法
D.逻辑错误检测:在具体的应用领域。根据相应的应用领域知识指定约束规则,利用数学方法获得规则团集,并自动判断字段值是否违反规则约束。
E.不一致数据:不一致数据一般通过手工或者自动化方式检测,目前常用的消除数据不一致的方法有排序,融合和基于规则3种
⑤数据清洗的模型:Trillium的过程模型,AjAX的过程模型,Kimball的过程模型
⑥数据清洗框架和模型:请参考http://www.cnblogs.com/XBWer/p/4198847.html

参考资料:《python与数据科学》

0 0
原创粉丝点击