第一章 数据清洗概述

前言

       近年来,大数据技术掀起了计算机领域的一个新浪潮,无论是数据挖掘、数据分析、数据可视化,还是机器学习、人工智能,它们都绕不开“数据”这个主题。   ​​​

      由于海量数据的来源是广泛的,数据类型也是多而繁杂的,因此数据中会夹杂着不完整、重复以及错误的数据,如果直接使用这些原始数据,会严重影响数据决策的准确性和效率。因此,对原始数据进行有效的清洗是大数据分析和应用过程中的关键环节。

1.1    数据清洗的背景     

    当今时代,企业信息化的要求越来越迫切。对于企业的决策者来说,正所谓“垃圾进垃圾出( garbage in, garbage out)”--如果作为决策支持的数据仓库存放的数据质量达不到要求将直接导致数据分析和数据挖掘不能产生理想的结果,甚至还会产生错误的分析结果,从而误导决策。因此,我们需要对数据仓库中的数据进行相关清洗操作,得出可靠、可准确反映企业实际情况的数据,用以支持企业战略决策。   

1.1.1  数据质量概述

      数据质量是指在业务环境下,数据符合数据消费者的使用目的,能满足业务场景具体需求的程度。在不同的业务场景中,数据消费者对数据质量有各自不同的观点。从适用性角度来说,数据质量是一个相对的概念(与决策有关)。不同的决策者对数据质量的高低要求也是不同的。对于一个无关的数据,即使质量很高,对决策也起不到任何作用。

     数据质量的显著特点如下:

  • “业务需求”会随时间变化,数据质量也会随时间发生变化;

  • 数据质量可以借助信息系统质量,但独立于信息系统存在;

  • 数据质量存在于书的整个生命周期,随着数据的产生而产生,随着数据的消失而消失。

1.1.2  数据质量的评价指标

     数据质量的评价指标主要包括数据的准确性( accuracy)、完整性( completeness)、简洁性( concision)及适用性( applicability),其中数据的准确性、完整性和简洁性是为了保证数据的适用性。

1.准确性 

       数据的准确性就是要求数据中的噪声尽可能少。为提高数据的准确性,需对数据集进行降噪处理。对于数据中偏离常规、分散的小样本数据,一般可视为噪声或异常数据,可通过最常用的异常值检测方法聚类进行处理。

2.完整性

        完整性指的是数据信息是否存在缺失的状况。数据缺失的情况可能是整条数据记录缺失,也可能是数据中某个字段信息的记录缺失。不完整的数据所能借鉴的价值会大大降低,也是数据质量更为基础的一项评估标准。

3.简洁性

       简洁性就是要尽量选择重要的本质属性,并消除冗余。进行决策时,决策者往往抓住反映问题的主要因素,而不需要把问题的细节都搞得很清楚。在数据挖掘时,特征的个数越多,产生噪声的机会就越大。一些不必要的属性既会增大数据量,又会影响挖掘数据的质量。因此,选择较小的典型特征集不仅符合决策者的心理,而且还容易挖掘到简洁有价值的信息。

4.适用性

       适用性是评价数据质量的重要标准。建立数据仓库的目的是进行数据挖掘、支持决策分析,而在现实世界中很难挖掘到满意的数据,但是我们可以尽量获取符合要求的数据。数据的质量是否能满足决策的需要是适用性的关键所在。尽管前面已经强调了数据的准确性、完整性和简洁性,但归根结底是为了数据的实际效用。从数据的实际效用上讲,适用性才是评价数据质量的核心准则。1.1.3 数据质量的问题分类

1.1.3   数据质量的分类问题

         数据质量的问题可以分为两类:一类是基于数据源的“脏”数据分类;另一类是基于清洗方式的“脏”数据分类。下面分别针对基于数据源的“脏”数据分类和基于清洗方式的“脏”数据分类进行详细讲解  。

1. 基于数据源的“脏”数据分类

       通常情况下,将数据源中不完整、重复以及错误等有问题的数据称为“脏”数据。由于数据仓库的数据来自底层数据源,因此“脏”数据出现的原因与数据源有密切的关系。 基于数据源的“脏”数据质量问题可以分为两类,即单数据源问题和多数据源问题。基于数据源的“脏”数据分类如图1-1所示。

                 
                                                      图1-1   基于数据源的“脏”数据分类

1)单数据源问题
       单数据源的数据质量主要取决于它的模式对数据完整性约束的控制程度。由于数据模式和完整性约束控制了数据的范围,如果单数据源没有数据模式,就会对进入和存储的数据缺乏相应的限制,此时很有可能出现拼写错误的数据和不一致的数据。
      单数据源的实例层问题是由于数据在模式层无法预防的错误和不一致引起的。典型的单数据源实例层问题包括缺失值、拼写错误、属性依赖冲突以及相似重复记录。
2)多数据源问题
      多数据源中存在的与模式相关的质量问题主要是名字冲突和结构冲突。名字冲突表现在同一个名字表示不同的对象,或不同的名字表示同一个对象;结构冲突的典型表现是不同的数据源中同一对象用不同的方式表示。

 2.基于清洗方式的“脏”数据分类

       基于数据源的“脏”数据分类方法需要为每种类型的“脏”数据设计单独的清洗方式。从数据清洗方式的设计者角度看,可以将“脏”数据分为“独立型“脏”数据”和“依赖型“脏”数据”两类。基于清洗方式的“脏”数据分类如图1-2所示。  

1.2   数据清洗的定义

       数据清洗技术是提高数据质量的有效方法。这项技术是一个较新的研究领域,对大数据集的清洗工作需要花费很长的时间。由于不同的应用领域对数据清洗有不同的解释,因此数据清洗直到现在都没有一个公认、统一的定义。数据清洗主要应用于3个领域,即数据 仓库领域、数据挖掘领域以及数据质量管理领域。

1.3  数据清洗的原理

1.4  数据清洗的基本流程 

     数据清洗的基本流程一共分为5个步骤,分别是数据分析、定义数据清洗的策略和规则、搜寻并确定错误实例、纠正发现的错误以及干净数据回流。

 1.5 数据清洗的策略

    在数据仓库环境中,数据清洗可以在不同阶段实现,并且存在不同的清洗策略,目前数据清洗的策略主要分为一般的数据清洗策略和混合的数据清洗策略。

1.一般的数据清洗策略 

     按照数据清洗的实现方式与范围划分,一般分为手工清洗策略、自动清洗策略、特定应用领域的清洗策略以及与特定应用领域无关的清洗策略,这4种清洗策略的具体介绍如下:
    ·手工清洗策略,即通过人工直接修改“脏”数据。
    ·自动清洗策略,即通过编写专门的应用程序检测并修改“脏”数据。
    ·特定应用领域的清洗策略,即根据概率统计学原理检测并修改数值异常的记录。
    ·与特定应用领域无关的清洗策略,即根据相关算法检测并删除重复记录。

2.混合的数据清洗策略

    混合的数据清洗策略主要以自动清洗为主。在数据仓库的数据初次装载阶段和增量装载阶段,可以通过编写应用程序实现批量数据的自动清洗,但该清洗策略并不能完全涵盖所有的错误类型。若无法按照已有策略识别某些错误类型,修改数据的工作就需要人工监督和确认,这时系统会设定异常报警功能,通过用户自身对错误的识别、理解和确认,最终实现数据清洗。

1.6 常见的数据清洗方法

1.缺失值的清洗

      缺失值的清洗方法主要分为两类,即忽略缺失值数据和填充缺失值数据。
      (1)忽略缺失值数据方法是直接通过删除属性或实例忽略缺失值的数据。
      (2)填充缺失值数据方法是使用最接近缺失值的值替代缺失的值,包括人工填写缺失值,使用一个全局常量填充空缺值(即将缺失的值用同一个常量 Unknown替换)以及使用属性的平均值、中间值、最大(小)值填充缺失值,或使用最可能的值(即通过回归、贝叶斯形式化方法的工具或决策树归纳确定的值)填充缺失值。

2.重复值的清洗

       目前清洗重复值的基本思想是“排序和合并”。清洗重复值的方法主要有相似度计算和基于基本近邻排序算法等方法。
       (1)相似度计算是通过计算记录的个别属性的相似度,然后考虑每个属性的不同权重值,进行加权平均后得到记录的相似度,若两个记录相似度超过某一个阈值,则认为两条记录匹配,否则认为这两条记录指向不同的实体。
       (2)基于基本近邻排序算法的核心思想是为了减少记录的比较次数,在按关键字排序后的数据集上移动一个大小固定的窗口,通过检测窗口内的记录判定它们是否相似,从而确定并处理重复记录。

3.错误值的清洗

       错误值的清洗方法主要包括使用统计分析的方法识别可能的错误值(如偏差分析、识别不遵守分布或回归方程的值)、使用简单规则库(即常识性规则、业务特定规则等)检测出错误值、使用不同属性间的约束以及使用外部的数据等方法检测和处理错误值。                                                                                                                   

你可能感兴趣的:(big,data,r语言,人工智能)