数据分析中的数据清洗怎么做?

1 评论 8675 浏览 56 收藏 10 分钟

数据清洗是指发现并纠正数据文件中可识别的错误的最后一道程序,包括检查数据一致性,处理无效值和缺失值等。本文作者详细地讲解了数据清洗的步骤,欢迎感兴趣的伙伴们阅读。

数据分析整个框架里面比较关键除了模型本身以外,更多依赖的是丰富高质量的数据源。在数据收集时需要捕获有关源的关键元数据,如来源、大小、时效性和相关内容的额外知识。迭代地识别当前数据资产基础和这些数据源的差距,使用分析、可视化、 挖掘或其他数据科学方法探索这些数据源,以定义模型算法输入或模型假设。

由于原始数据中或多或少存在一些缺失、损坏的脏数据。如果不处理会导致模型失效。就好比,一个水平很高的厨师,给到的原材料如果不卫生不干净,那也很难做出一道让人满意的菜品。因此在整合数据建立模型之前, 应先评估数据的质量。对数据进行清洗。

当然,数据清洗除了能保障高质量的数据输出之外。也能够同步对数据探索。数据清洗和数据探索的作用是相辅相成的,通过数据探索,检阅数据的特征描述、分布推断以及结构上的优化,能更好的为数据清洗选择合适的清洗方法。而数据清洗后的数据则可以更有效的进行数据探索。本文重点讲解数据清洗的一些方法和注意事项。接下来,介绍数据清洗的两个重要部分:异常值判别和缺失值处理。

01 异常值判别

数据清洗的第一步是识别会影响分析结果的“异常”数据,然后判断是否剔除。异常值通常有以下几个表现:

(1)缺乏完整性

完整性即记录数量名称是否完整,内部数据由于属于企业内部自己生产的数据,相对而言比较好掌控检查。而如果是采购的外部数据,例如:城市土地人口宏观数据或者某城的二手房交易数据,则完整性需要外部数据供应商提出相应保障。

(2)缺乏准确性

收集的数据必须要能够正确反映业务需求,否则分析结论会对业务造成误导。这方面的检查,需要首先理解业务背景,第二需要判断收集的此类数据以及数据项是否可以转换为分析项目所需数据。如果部分数据不符合业务逻辑,或者数据准确性很差,则对数据分析造成很大的影响。

(3)缺乏唯一性

数据的唯一性应该从两个角度检查,常见的错误是多个数据一个编码,例如产品住宅,产品商铺都是同一编码,或者同时一个实物对应多个编码。如果导入系统,系统需要能够识别,否则将会影响分析主体的唯一性。

目前常用的识别异常数据的方法有物理判别法和统计判别法:

物理判别法:根据人们对客观事物、业务等已有的认识,判别由于外界干扰、人为误差等原因造成实测数据偏离正常结果,判断异常值。例如常见的年月日基本信息,显示值为:1900年1月1日。这种判别方式需要人工干预,检查的工作量较大,如果没有找到数据之间的关联关系容易出错漏处理。

统计判别法:通过系统设定一个置信概率,并确定一个置信上下限,凡超过此限的误差,就认为它不属于随机误差范围,自动判定为异常值。这种方法高效明确,且不会遗漏错误脏数据。常用的方法有:拉依达准则、肖维勒准则、格拉布斯准则、狄克逊准则、t检验等。(具体描述查看下图)

这种系统判别并进行删除异常值的方式虽然高效,但也存在风险。因为每个方法不尽相同,得出的异常值也有可能存在偏差。为了减少这种误删的概率,可以将多种统计判别方法结合使用,并且要找出异常值出现的原因。是手工录入错误还是数据接收过程中出错。同时,如果发现有多个异常值,建议逐个删除,即删除一个后再进行检验。

02 缺失值处理

在数据缺失严重的情况下,分析结果会失真。因此需要将缺失值进行填补,传统方式检查出来的空值有人工进行补充,但是需要补充人员找到相关资料检验无误后再进行填补。当然如果对于结果要求并不是特别大,且我们能通过数据找到规律的情况下,可以采用合理的方法自动填补空缺值。例如:可以根据身份证号码,自动判断人员的性别。常见的方法有平均值填充、K最近距离法、回归法、极大似线估计法等。(具体描述查看下图)

值得注意的是,数据收集的过程中,如果对于某个字段要求必输,则可以通过系统导入时自动判断是否为null,如果为null则导入不成功,从源头控制数据质量。

当然,我们在做数据分析的过程中,也要看数据量的大小。一般情况下数据量越大,异常值和缺失值对整体分析结果的影响会逐渐变小。所以,在“大数据”模式下,如果异常值和缺失值较小的情况下,可以忽略减轻部分工作量,而侧重对数据结构合理性进行分析。

03 格式内容清洗

如果数据是由系统日志而来,那么通常在格式和内容方面,会与元数据的描述一致。而如果数据是由人工收集或用户填写而来,则有很大可能性在格式和内容上存在一些问题,简单来说,格式内容问题有以下几类:

1、字段显示格式不一致

这种问题通常与输入端有关,在整合多来源数据时也有可能遇到,将其处理成一致的某种格式即可。

2、内容中有不该存在的字符

某些内容可能只包括一部分字符,比如身份证号是数字+字母,中国人姓名是汉字(赵C这种情况还是少数)。最典型的就是头、尾、中间的空格,也可能出现姓名中存在数字符号、身份证号中出现汉字等问题。这种情况下,需要以半自动校验半人工方式来找出可能存在的问题,并去除不需要的字符。

3、内容与该字段应有内容不符

姓名写了性别,身份证号写了手机号等等,均属这种问题。但该问题特殊性在于:并不能简单的以删除来处理,因为成因有可能是人工填写错误,也有可能是前端没有校验,还有可能是导入数据时部分或全部存在列没有对齐的问题,因此要详细识别问题类型。

格式内容问题是比较细节的问题,但很多分析失误都是栽在这个坑上,比如跨表关联或VLOOKUP失败(多个空格导致工具认为“张三”和“张 三”不是一个人)、统计值不全(数字里掺个字母当然求和时结果有问题)等等,需要大家重点关注。

专栏作家

成于念,微信公众号:Laosiji,人人都是产品经理专栏作家。关注互联网+行业、数字化转型落地。专注领域包括IT数据管理、数据资产、数据应用和最佳企业数据案例实践分享。

本文原创发布于人人都是产品经理,未经作者许可,禁止转载。

题图来自 Unsplash,基于CC0协议。

该文观点仅代表作者本人,人人都是产品经理平台仅提供信息存储空间服务。

更多精彩内容,请关注人人都是产品经理微信公众号或下载App
评论
评论请登录
  1. 辛苦了

    来自上海 回复