(大数据一班 1916290144)
以下来自于«数据清洗» (黑马程序员/编著)读书笔记
第一章 数据清洗概述
海量数据的来源是广泛的,数据类型也是多而繁杂的,因此数据中会夹杂不完整、重复以及错误的数据,如果直接使用这些原始数据,会严重影响数据决策的准确性和效率。因此,对原始数据进行有效的清洗是大数据分析和应用过程中的关键环节。
第一节 数据清洗的背景
数据质量在企业战略决策中占据着重要的地位,我们需要对数据仓库中的数据进行相关清洗操作,得出可靠、可准确反映企业实际情况的数据,用以支持企业战略决策。
1、数据质量概述
(1)数据质量:是指在业务环境下,数据符合数据消费者的使用目的,能满足业务场景具体需求的程度。
(2)从适用性的角度看:数据质量是一个相对的概念(与决策有关),不同的决策者对数据质量的高低要求也是不同的。对一个无关的数据,即使质量再高,对决策也起不到任何作用。
(3)数据质量的显著特点:
- “业务需求”会随时间变化,数据质量也会随时间发生变化。
- 数据质量可以借助信息系统度量,但独立于信息系统存在。
- 数据质量存在于数据的整个生命周期,随着数据的产生而产生,随着数据的消失而消失。
2、数据质量的评价指标
-
准确性:要求数据中的噪声尽可能小。
-
完整性:数据信息是否存在缺失的状况。
-
简洁性:要尽量选择重要的本质属性,并消除冗余。
-
适用性:数据的质量能否满足决策的需要是适用性的关键所在。
从数据的实际效用上讲,适用性是评价数据质量的核心准则。
3、数据质量的问题分类
数据质量的问题可以分为如下两类:
(1)基于数据源的“脏”数据分类
“脏”数据:数据源中不完整、重复以及错误等有问题的数据。
数据仓库的数据来自底层数据源,因此“脏”数据出现的原因与数据源有密切的关系。
基于数据源的“脏”数据质量问题可以分为 单数据源问题 和多数据源问题 两类:
- 单数据源问题:
① 模式层问题:如缺少完整性约束、唯一性、属性依赖等。
② 实例层问题:如缺失值、拼写错误、属性依赖冲突、相似重复记录等。 - 多数据源问题:
① 模式层问题:如命名冲突、结构冲突等。
② 实例层问题:如值的不同表示重复记录等。
(2)基于清洗方式的“脏”数据分类
基于清洗方式的“脏”数据分类方法需要为每种类型的“脏”数据设计单独的清洗方式。从数据清洗方式的设计者角度看,可以将“脏”数据分为 独立型”脏“数据 和 依赖型“脏”数据 两类。
- 独立型“脏”数据:可通过记录或本身属性检验出是否包含“脏”数据,不需要依赖其他记录或属性检测。独立型“脏”数据使用“数据合法性检验规则”检测数据字段的实际内容,若属性值不符合规则,则视为“脏”数据,此时可调用已定义的相关清洗方式,将其变为满足规则的数据,从而可以保证数据的合法性。
- 依赖型“脏”数据:依赖型“脏”数据主要包括缺失数据和重复数据等“脏”数据。由于需要综合考虑与其他纪录间的关联,依赖型“脏”数据的处理很难有通用的方法。一般地,针对特定类型的“脏”数据设计特定的清洗方式。
① 缺失数据:包括缺失空值和数据异常。
a、缺失空值:一共有两种情况,即缺失值和空值。其中,缺失值是指实际存在,但没有存入值所属字段中;空值是指因实际并不存在而空缺的值。
b、数据异常:指的是用统计分析的方法识别出异常值。
② 重复数据:是指一个现实实体在数据集合中以多个不完全相同的记录表示。
第二节 数据清洗的定义
数据清洗技术是提高数据质量的有效方法。不同的领域对数据清洗有不同的解释,因此数据清洗直到现在都没有一个公认的、统一的定义。数据清洗主要应用于一下三个领域:
-
数据仓库领域:
当多个数据库合并时或多个数据源进行集成时,都需要进行数据清洗。
-
数据挖掘领域:
在该领域中,数据清洗是数据进行预处理过程的第一个步骤。
-
数据质量管理领域:
数据质量管理主要用于解决信息系统中的数据质量及集成问题。在该领域中,数据清洗从数据质量的角度出发,把数据清洗过程和数据生命周期集成在一起,对数据的正确性进行检查并提高数据质量。
第三节 数据清洗的原理
数据清洗是利用相关技术将“脏”数据转换为满足质量要求的数据。
1、可能导致“脏”数据出现的情况:同一值的不同表示、拼写错误、不同的命名习惯、不合法的值以及空值。
2、通过定义好的数据清洗策略和清洗规则(即数理统计技术、数据挖掘技术等清洗策略)对“脏”数据进行清洗,得到满足数据质量要求的数据。
3、数据清洗的目的是:解决“脏”数据问题,即不是将“脏”数据洗掉,而是将“脏”数据洗干净(干净的数据指的是满足质量要求的数据)。
第四节 数据清洗的基本流程
数据清洗的基本刘成刚一共分为5个步骤:
1、数据分析
数据分析是数据清洗的前提和基础,通过人工检测或者计算机分析程序的方式对原始数据源的数据进行检测分析,从而得出原始数据源中存在的数据质量问题。
2、定义数据清洗的策略和规则
根据数据分析出的数据源个数和数据源中的“脏”数据程度定义数据清洗策略和规则,并选择合适的数据清洗算法。
3、搜寻并确定错误实例
该步骤包括自动检测属性错误和检测重复记录的算法。
4、纠正发现的错误
5、干净数据回流
当数据被清洗后,干净的数据代替原始数据源中的“脏”数据,可以提高信息系统的数据质量,还可避免将来再次抽取数据后进行重复的清洗工作。
第五节 数据清洗的策略
在数据仓库环境中,数据清洗可以在不同阶段实现,并且存在不同的清洗策略,目前数据清洗的策略主要分为 一般数据清洗策略 和 混合的数据清洗策略 。
1、一般数据清洗策略
- 手工清洗策略:即通过人工直接修改“脏”数据。
- 自动清洗策略:即通过编写专门的应用程序检测并修改“脏”数据。
- 特定应用领域的清洗策略:即根据概率统计学原理检测并修改数值异常的记录。
- 与特定应用领域无关的清洗策略:即根据相关算法检验并删除重复记录。
2、混合的数据清洗策略
- 主要以自动清洗为主
第六节 常见的数据清洗方法
1、缺失值的清洗
缺失值的清洗方法主要分为两类,即 忽略缺失值数据 和 填充缺失值数据 。
①忽略缺失值数据:是直接通过删除属性或实例忽略缺失值的数据。
②填充缺失值数据:是使用最接近缺失值的值代替缺失的值。
2、重复值的清洗
目前清洗重复值的基本思想是“排序和合并”。
清洗重复值的方法主要有 相似度计算 和 基于基本临近排序算法等方法 。
3、错误值的清洗
错误值的清洗方法主要包括使用统计分析的方法识别可能的错误值、使用简单规则库检测出错误值、使用不同属性间的约束以及使用外部的数据等方法检测和处理错误值。
本章小结
本章主要讲解了数据预处理的相关知识,包括数据质量 概述、数据质量的评价指标、数据质量的问题分离以及数据清洗的定义、数据清洗的原理、数据清洗的基本流程、数据清洗的策略和常见的数据清洗方法。