2021-01-06 13:37:01 阅读(142)
数据清洗是整个数据分析过程中不可缺少的一部分,其结果质量直接关系到模型效果和最终结论。在实践中,数据清洗通常占分析过程的50%-80%。一些外国学术机构将专门研究如何清理数据,并有许多相关的书籍。(从美亚搜索datacleaning的结果可以看出,这本书还是挺贵的。)本文将尝试对数据清理过程进行非常浅层次的梳理,供您参考。像往常一样,先上图:预处理阶段预处理阶段主要做两件事:一是将数据导入处理工具。一般情况下,建议使用数据库,单机跑数可以构建MySQL环境。如果数据量大(千万级以上),可以存储文本文件 Python操作方法。二是看数据。这里有两部分:一是看元数据,包括所有描述数据的信息,如字段解释、数据源、代码表等;二是提取部分数据,使用人工查看,直观了解数据本身,初步发现一些问题,为以后的处理做准备。第一步:清理缺失值是最常见的数据问题,处理缺失值的方法有很多。我建议遵循以下四个步骤:1、确定缺失值范围:计算每个字段的缺失值比,然后根据缺失比和字段的重要性制定策略,如下图所示:2、删除不必要的字段:这一步很简单,可以直接删除...但强烈建议清洗每一步都要备份,或者成功测试小规模数据,然后处理全量数据,否则如果你删除错误,你会后悔的(换句话说,在编写SQL时,delete必须与where相匹配!)。)。3、填充缺失内容:可以填充一些缺失值。有三种方法:根据业务知识或经验,很容易理解填充缺失值的前两种方法:根据同一指标(平均值、中位数、众数等)的计算结果,以不同指标的计算结果填充缺失值。至于第三种方法,举个最简单的例子:缺少年龄字段,但有六个身份证号码被屏蔽,so……4、重新取数:如果某些指标非常重要且缺失率高,则需要了解取数人员或业务人员是否有其他渠道可以获取相关数据。以上简单梳理了缺失值清洗的步骤,但有些内容比我说的要复杂得多,比如填充缺失值。许多关于统计方法或统计工具的书籍都会提到相关方法,感兴趣的人可以自己深入了解。第二步:如果数据来自系统日志,格式内容清洗通常与元数据的描述一致。如果数据是手动收集或用户填写的,则很有可能在格式和内容上存在一些问题。简单地说,格式内容有以下类别:1、时间、日期、值、全半角等显示格式不一致的问题通常与输入端有关,也可能在整合多源数据时遇到,并将其处理成一致的格式。2、有些不应该存在的字符可能只包括一部分字符,比如身份证号码是数字 中国人的名字是汉字(赵C这种情况还是少数)。最典型的是头、尾、中间的空间,名称中也可能有数字符号、身份证号中的汉字等问题。在这种情况下,需要通过半自动验证和半人工验证来发现可能出现的问题,并去除不必要的字符。3、内容与字段应有的内容不符,姓名写性别,身份证号码写手机号码等,都是这样的问题。然而,这个问题的特殊性在于,它不能简单地通过删除来处理,因为原因可能是人工填写错误,或者前端没有验证,或者在导入数据时部分或全部列没有对齐,因此有必要详细识别问题的类型。格式内容问题是一个更详细的问题,但许多分析错误都种植在这个坑上,如跨表关联或VLOOKUP失败(多个空格导致工具认为“陈丹奕”和“陈丹奕”不是一个人)、统计值不完整(数字中加入字母当然是求和时的结果有问题)、模型输出失败或效果不好(数据对错列,日期和年龄混合,so……)。因此,请务必注意这部分清洁工作,特别是当处理的数据是手动收集的,或者当您确定产品的前端验证设计不是很好。第三步:逻辑错误清洁的工作是删除一些使用简单的逻辑推理可以直接发现问题的数据,以防止分析结果的偏差。主要包括以下步骤:1、去重有的分析师喜欢把去重放在第一步,但我强烈建议把去重放在格式内容清洗后,原因已经说过了(多个空格导致工具认为“陈丹奕”和“陈丹奕”不是一个人,去重失败)。而且,并不是所有的重复都能如此简单地删除。。。我曾经做过与电话销售相关的数据分析,发现销售人员无所不用。。例如,一家叫做“ABC管家有限公司”的公司在销售A手中,然后销售B在系统中输入一家“ABC管家有限公司”,以抢夺客户。你看,如果你不仔细看,你就看不出两者的区别,即使你看到了,你能保证没有“ABC官方有限公司”的存在吗。。。在这个时候,你要么抱着RD大腿,让别人给你写一个模糊的匹配算法,要么用肉眼看。上面这个不是最狠的,请看下图:你用的系统很有可能两条路都叫八里庄路,敢直接去重吗?(附送重小tipss:两条八里庄路的门牌号范围不同)当然,如果数据不是手动输入的,那就简单地去重。2、去除不合理值一句话就能说清楚:有人填表时盲目填表,年收入2万(估计没看到“万”字),要么删除,要么按缺失值处理。如何发现这个值?提示:可用但不限于箱形图(Box-plot).3、纠正矛盾内容的一些字段可以相互验证。例如,身份证号码为1101031980XXXXXXXX,然后年龄为18岁。虽然我们理解人们总是18岁的想法,但我们知道真正的年龄可以为用户提供更好的服务(胡说八道)。此时,需要根据字段的数据来源来确定哪个字段提供更可靠的信息,以去除或重构不可靠的字段。除上述情况外,逻辑错误还有许多未列举的情况,在实际操作中应酌情处理。此外,这一步可能会在随后的数据分析和建模过程中重复,因为即使问题很简单,也不是所有的问题都能一次发现。我们所能做的就是使用工具和方法,尽量减少问题的可能性,使分析过程更有效率。第四步:非需求数据清洗的步骤很简单:删除不需要的字段。但在实践中,有很多问题,比如删除看似不需要但实际上对业务非常重要的字段;一个字段感觉有用,但不知道如何使用,不知道是否删除;看一会儿,删除错误的字段。在前两种情况下,我给出的建议是:如果数据量没有大到不删除字段就无法处理的程度,那么尽量不要删除不能删除的字段。第三种情况,请勤备份数据...第五步:如果您的数据有多个来源,则需要进行相关验证。例如,您有汽车离线购买信息和电话客户服务问卷信息,两者通过姓名和手机号码相关,所以看看同一人离线注册车辆信息和在线问卷问车辆信息是否相同,如果不是(别笑,业务流程设计可能会出现这个问题!),然后需要调整或删除数据。严格来说,这已经脱离了数据清洗的范围,应该涉及数据库模型中的相关数据变化。但我仍然想提醒你,多源数据集成是一项非常复杂的工作。我们必须注意数据之间的相关性,尽量不要在分析过程中相互矛盾,但你没有注意到。
以上就是关于如何做数据清洗?全过程梳理的相关介绍,更多如何做数据清洗?全过程梳理相关内容可以咨询我们或者浏览页面上的推荐内容。我们将让你对如何做数据清洗?全过程梳理有更深的了解和认识。
推荐阅读
最新文章
猜你喜欢以下内容:
一 客户顾问-张三 一