首页 > 试题

unknow

更新时间:2022-11-12 03:39:01 阅读: 评论:0

北京无忧教育官网-夹组词


2022年11月12日发(作者:酒店制服)

数据预处理_数据清理(缺失值、噪声等详细处理)

1、概述

实际的数据库极易受噪声、缺失值和不⼀致数据的侵扰,因为数据库太⼤,并且多半来⾃多个异种数据源。低质量的数据将会导致低

质量的挖掘结果。有⼤量的数据预处理技术:

--数据清理:可以⽤来清楚数据中的噪声,纠正不⼀致。

--数据集成:将数据由多个数据源合并成⼀个⼀致的数据存储,如数据仓库。

--数据归约:可以通过如聚集、删除冗余特征或聚类来降低数据的规模。

--数据变换:(例如,规范化)可以⽤来把数据压缩到较⼩的区间,如0.0到1.0。

这可以提⾼设计距离度量的挖掘算法的准确率和效率。这些技术不是排斥的,可以⼀起使⽤。

1.1、数据质量数据如果能满⾜其应⽤的要求,那么它是⾼质量的。数据质量涉及许多因素,包括:准确率、完整性、⼀致性、时效

性、可信性和可解释性。

2、数据清理

现实世界的数据⼀般是不完整的、有噪声的和不⼀致的。数据清理例程试图填充缺失的值、光滑噪声并识别离群点、纠正数据中的不⼀致。

2.1、缺失值

如何处理缺失的属性?我们来看看下⾯的⽅法:

1---忽略元组:当缺少类标号时通常这样做(假设挖掘任务设计分类)。除⾮元组有多个属性缺少值,否则更改⽅法不是很有效。当每个

属性缺失值的百分⽐变化很⼤时,他的性能特别差。采⽤忽略元组,你不能使⽤该元组的剩余属性值。这些数据可能对⼿头的任务是有⽤

的。

2---⼈⼯填写缺失值:⼀般来说,该⽅法很费事,并且当数据集很⼤、缺失很多值时该⽅法可能⾏不通。

3---使⽤⼀个全局填充缺失值:将缺失的属性值⽤同⼀个常量(如:“Unknow”或-∞)替换。如果确实的值都如“Unknow”替换,则挖

掘程序可能误认为他们形成了⼀个有趣的概念,因为他们都具有相同的值–“Unknow”。因此,尽管该⽅法简单,但是并不⼗分可靠。

4---使⽤属性的中⼼度量(如均值或中位数)填充缺失值:对于正常的(对称的)数据分布⽽⾔,可以使⽤均值,⽽倾斜数据分布应该使⽤中位

数。

5---使⽤与给定元组属同⼀类的所有样本的属性均值或中位数:

6---使⽤最可靠的值填充缺失值:可以⽤回归、贝叶斯形式化⽅法的基于推理的⼯具或决策树归纳确定。

⽅法3~⽅法6使数据有偏,可能填⼊的数据不准确。然⽽,⽅法6是最流⾏的策略。与其他⽅法(可能⽅法2除外)相⽐,它使⽤已有数据的⼤

部分信息来预测缺失值。

需要注意的是,在某些情况下,缺失值并不意味着数据有错误。理想情况下,每个属性都应当有⼀个或多个空值条件的规则。这些规则可以

说明是否允许空值,并且/或者说明这样的空值应该如何处理或转换。如果在业务处理的稍后步骤提供值,字段也可能故意留下空⽩。因

此,尽管在得到数据后,我们可以尽我们所能来清理数据,但好的数据库和数据输⼊设计将有助于在第⼀现场把缺失值或者错误的数量降⾄

最低。

2.2、噪声数据

噪声(noi)是被测量的变量的随机误差或⽅差。我们可以使⽤基本的数据统计描述技术(例如,盒图或者散点图)和数据可视化⽅法来识别可

能代表噪声的离群点。

1---分箱(bining):分箱⽅法通过考察数据的“近邻”(即周围的值)来光滑有序的数据值。这些有序的值被分布到⼀些“捅”或箱中。由于

分箱⽅法考察近邻的值,因此它进⾏局部的光滑。

如上图所⽰,数据⾸先排序并被划分到⼤⼩为3的等频的箱中。对于⽤箱均值光滑,箱中每⼀个值都被替换为箱中的均值。类似的,可以使

⽤⽤箱中位数光滑或者⽤箱边界光滑等等。

2---回归(regression):可以⽤⼀个函数拟合数据来光滑数据。这种技术称之为回归。线性回归涉及找出拟合两个属性(或变量)的“最

佳”直线,使得⼀个属性可以⽤来预测另⼀个。多元线性回归是线性回归的扩充,其中涉及的属性多余两个,并且数据拟合到⼀个多维曲

⾯。

3---离群点分析(outlieranalysis):可以通过如聚类来检测离群点。聚类将类似的值组织成群或“簇”。直观地,落在簇集合之外的值被

视为离群点。

2.3、数据清理作为⼀个过程

数据清理过程第⼀步是偏差检测(discrepancydetection)。导致偏差的因素可能有多种,包括具有很多可选字段的设计糟糕的输⼊表单、

⼈为的输⼊错误、有意的错误(例如,不愿意泄露个⼈隐私),以及数据退化(例如,过时的地址)。偏差也可能源于不⼀致的数据表⽰和编码

的不⼀致使⽤。记录数据的设备的错误和系统错误是另⼀种偏差源。当数据(不适当地)⽤于不同于当初的⽬的时,也可能出现错误。数据集

成也可能导致不⼀致(例如,当给定的属性在不同的数据库中具有不同的名称时)。

那么,如何进⾏偏差检测呢?⾸先,我们明确⼀个概念,”关于数据的数据“称作元数据。例如,每个属性的数据类型是定义域是什么?每

个属性可接受的值是什么?对于把握数据趋势和识别异常,数据的基本统计描述是有⽤的。例如,找出均值、中位数和众数。数据是对称的

还是倾斜的?值域是什么?所有的值都在期望的区间内吗?每个属性的标准差是多少?远离给定属性均值超过两个标准差的值可能标记为可

能的离群点。属性之间存在已知的依赖吗?在这⼀步,可以编写程序或使⽤稍后我们讨论到的⼯具。由此,你可能发现噪声、离群点和需要

考察的不寻常的值。

1---编码格式:警惕编码使⽤的不⼀致和数据表⽰的不⼀致问题(例如,⽇期“2015/12/08”和”08/12/2015”);

2---字段过载:开发者将新属性的定义挤进已经定义的属性的未使⽤(位)部分(例如,使⽤⼀个属性未使⽤的位,该属性取值已经使⽤了32

位中的31位)。

1---:唯⼀性规则:给定属性的每个值都必须不同于该属性的其他值。

2---:连续性规则:属性的最低值和最⾼值之间没有缺失的值,并且所有的值还必须是唯⼀的(例如,检验数).

3---:空值规则:说明空⽩、问号、特殊符号或指⽰空值条件的其他串的使⽤(例如,⼀个给定属性的值何处不能⽤),以及如何处理这样

的值。

1---数据清洗⼯具(datascrubbingtools):使⽤简单的领域知识(邮政地址知识和拼写检查),检查并纠正数据中的错误。在清理多个数据

源的数据时,这些⼯具依赖分析和模糊匹配技术。

2---数据审计⼯具(dataauditingtools):通过分析数据发现规则和联系,并检测违反这些条件的数据来发现偏差。

3---数据迁移⼯具(datamigrationtools):允许说明简单的变换,如将串”gender”⽤“x”替换。

4---ETL(extraction/transformation/loading,提取/变换/装⼊)⼯具:允许⽤户通过图形⽤户界⾯说明变换。

通常,这些⼯具只⽀持有限的变换,因此我们可能需要为数据清理过程的这⼀步编写定制的程序。

偏差检测和数据变换(纠正偏差)迭代执⾏这两步过程。通常,需要多次迭代才能使⽤户满意。

新的数据清理⽅法强调加强交互性。例如,Potter’sWheel是⼀种公开的数据清理⼯具,它集成了偏差检测和数据变换。

预处理阶段

预处理阶段主要做两件事情:

⼀是将数据导⼊处理⼯具。通常来说,建议使⽤数据库,单机跑数搭建MySQL环境即可。如果数据量⼤(千万级以上),可以使⽤⽂本⽂

件存储+Python操作的⽅式。

⼆是看数据。这⾥包含两个部分:⼀是看元数据,包括字段解释、数据来源、代码表等等⼀切描述数据的信息;⼆是抽取⼀部分数据,使⽤

⼈⼯查看⽅式,对数据本⾝有⼀个直观的了解,并且初步发现⼀些问题,为之后的处理做准备。

第⼀步:缺失值清洗

缺失值是最常见的数据问题,处理缺失值也有很多⽅法,我建议按照以下四个步骤进⾏:

1、确定缺失值范围:对每个字段都计算其缺失值⽐例,然后按照缺失⽐例和字段重要性,分别制定策略,可⽤下图表⽰:

2、去除不需要的字段:这⼀步很简单,直接删掉即可……但强烈建议清洗每做⼀步都备份⼀下,或者在⼩规模数据上试验成功再处理全量

数据,不然删错了会追悔莫及(多说⼀句,写SQL的时候delete⼀定要配where!)。

3、填充缺失内容:某些缺失值可以进⾏填充,⽅法有以下三种:

以业务知识或经验推测填充缺失值

以同⼀指标的计算结果(均值、中位数、众数等)填充缺失值

以不同指标的计算结果填充缺失值

前两种⽅法⽐较好理解。关于第三种⽅法,举个最简单的例⼦:年龄字段缺失,但是有屏蔽后六位的⾝份证号,so……

4、重新取数:如果某些指标⾮常重要⼜缺失率⾼,那就需要和取数⼈员或业务⼈员了解,是否有其他渠道可以取到相关数据。

以上,简单的梳理了缺失值清洗的步骤,但其中有⼀些内容远⽐我说的复杂,⽐如填充缺失值。很多讲统计⽅法或统计⼯具的书籍会提到相

关⽅法,有兴趣的各位可以⾃⾏深⼊了解。

第⼆步:格式内容清洗

如果数据是由系统⽇志⽽来,那么通常在格式和内容⽅⾯,会与元数据的描述⼀致。⽽如果数据是由⼈⼯收集或⽤户填写⽽来,则有很⼤可

能性在格式和内容上存在⼀些问题,简单来说,格式内容问题有以下⼏类:

1、时间、⽇期、数值、全半⾓等显⽰格式不⼀致

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

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

某些内容可能只包括⼀部分字符,⽐如⾝份证号是数字+字母,中国⼈姓名是汉字(赵C这种情况还是少数)。最典型的就是头、尾、中间

的空格,也可能出现姓名中存在数字符号、⾝份证号中出现汉字等问题。这种情况下,需要以半⾃动校验半⼈⼯⽅式来找出可能存在的问

题,并去除不需要的字符。

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

姓名写了性别,⾝份证号写了⼿机号等等,均属这种问题。但该问题特殊性在于:并不能简单的以删除来处理,因为成因有可能是⼈⼯填

写错误,也有可能是前端没有校验,还有可能是导⼊数据时部分或全部存在列没有对齐的问题,因此要详细识别问题类型。

格式内容问题是⽐较细节的问题,但很多分析失误都是栽在这个坑上,⽐如跨表关联或VLOOKUP失败(多个空格导致⼯具认为“陈丹

奕”和“陈丹奕”不是⼀个⼈)、统计值不全(数字⾥掺个字母当然求和时结果有问题)、模型输出失败或效果不好(数据对错列了,把

⽇期和年龄混了,so……)。因此,请各位务必注意这部分清洗⼯作,尤其是在处理的数据是⼈⼯收集⽽来,或者你确定产品前端校验设计

不太好的时候……

第三步:逻辑错误清洗

这部分的⼯作是去掉⼀些使⽤简单逻辑推理就可以直接发现问题的数据,防⽌分析结果⾛偏。主要包含以下⼏个步骤:

1、去重

有的分析师喜欢把去重放在第⼀步,但我强烈建议把去重放在格式内容清洗之后,原因已经说过了(多个空格导致⼯具认为“陈丹

奕”和“陈丹奕”不是⼀个⼈,去重失败)。⽽且,并不是所有的重复都能这么简单的去掉……

我曾经做过电话销售相关的数据分析,发现销售们为了抢单简直⽆所不⽤其极……举例,⼀家公司叫做“ABC管家有限公司“,在销售A⼿

⾥,然后销售B为了抢这个客户,在系统⾥录⼊⼀个”ABC官家有限公司“。你看,不仔细看你都看不出两者的区别,⽽且就算看出来了,

你能保证没有”ABC官家有限公司“这种东西的存在么……这种时候,要么去抱RD⼤腿要求⼈家给你写模糊匹配算法,要么⾁眼看吧。

上边这个还不是最狠的,请看下图:

你⽤的系统⾥很有可能两条路都叫⼋⾥庄路,敢直接去重不?(附送去重⼩tips:两个⼋⾥庄路的门牌号范围不⼀样)

当然,如果数据不是⼈⼯录⼊的,那么简单去重即可。

2、去除不合理值

⼀句话就能说清楚:有⼈填表时候瞎填,年龄200岁,年收⼊100000万(估计是没看见”万“字),这种的就要么删掉,要么按缺失值处

理。这种值如何发现?提⽰:可⽤但不限于箱形图(Box-plot).

3、修正⽭盾内容

有些字段是可以互相验证的,举例:⾝份证号是1101031980XXXXXXXX,然后年龄填18岁,我们虽然理解⼈家永远18岁的想法,但

得知真实年龄可以给⽤户提供更好的服务啊(⼜瞎扯……)。在这种时候,需要根据字段的数据来源,来判定哪个字段提供的信息更为可

靠,去除或重构不可靠的字段。

逻辑错误除了以上列举的情况,还有很多未列举的情况,在实际操作中要酌情处理。另外,这⼀步骤在之后的数据分析建模过程中有可能重

复,因为即使问题很简单,也并⾮所有问题都能够⼀次找出,我们能做的是使⽤⼯具和⽅法,尽量减少问题出现的可能性,使分析过程更为

⾼效。

第四步:⾮需求数据清洗

这⼀步说起来⾮常简单:把不要的字段删了。

但实际操作起来,有很多问题,例如:

把看上去不需要但实际上对业务很重要的字段删了;

某个字段觉得有⽤,但⼜没想好怎么⽤,不知道是否该删;

⼀时看⾛眼,删错字段了。

前两种情况我给的建议是:如果数据量没有⼤到不删字段就没办法处理的程度,那么能不删的字段尽量不删。第三种情况,请勤备份数

据……

第五步:关联性验证

如果你的数据有多个来源,那么有必要进⾏关联性验证。例如,你有汽车的线下购买信息,也有电话客服问卷信息,两者通过姓名和⼿机号

关联,那么要看⼀下,同⼀个⼈线下登记的车辆信息和线上问卷问出来的车辆信息是不是同⼀辆,如果不是(别笑,业务流程设计不好是有

可能出现这种问题的!),那么需要调整或去除数据。

严格意义上来说,这已经脱离数据清洗的范畴了,⽽且关联数据变动在数据库模型中就应该涉及。但我还是希望提醒⼤家,多个来源的数据

整合是⾮常复杂的⼯作,⼀定要注意数据之间的关联性,尽量在分析过程中不要出现数据之间互相⽭盾,⽽你却毫⽆察觉的情况。

以上,就是我对数据清洗过程的⼀个简单梳理。由于能⼒所限,难免挂⼀漏万,请各位不吝赐教,感谢。

⼆、数据分析之前的各项准备⼯作

数据分析团队各成员确定之后,将进⾏下⼀项⼯作,就是找到有价值的数据进⾏分析了。数据是分析的基础,因此数据的质量、数据的相关

度、数据的维度等会影响数据分析的结果影,其中GIGO(垃圾进垃圾出)对于数据分析结果影响最⼤。

1数据源选择

数据分析团队⾯对⼤量的数据源,各个数据源之间交叉联系,各个数据域之间具有逻辑关系,各个产品统计⼝径不同,不同的时间段数值不

同等。这⼀系列问题多会影响数据分析结果,因此确定数据源选择和数据整理⾄关重要。

DBA可以基于数据分析需要,找到相关数据,建⽴⼀张数据宽表,将数据仓库的数据引⼊到这张宽表当中,基于⼀定的逻辑关系进⾏汇总计

算。这张宽表作为数据分析的基础,然后再依据数据分析需要衍⽣出⼀些不同的表单,为数据分析提供⼲净全⾯的数据源。宽表⼀⽅⾯是⽤

于集中相关分析数据,⼀⽅⾯是提⾼效率,不需要每次分析时都查询其他的数据表,影响数据仓库效率。

2数据抽样选择

简单的数据分析可以调⽤全体数据进⾏分析,数据抽样主要⽤于建模分析,抽样需考虑样本具有代表性,覆盖各种客户类型,抽样的时间也

很重要,越近的时间窗⼝越有利于分析和预测。在进⾏分层抽样时,需要保证分成出来的样本⽐例同原始数据基本⼀致。

3数据类型选择

数据类型分为连续型和离散型,建模分析时需要确定数据类型。进⾏业务收⼊趋势分析、销售额预测分析、RFM分析时,⼀般采⽤连续型

变量。信⽤评级、分类预测时⼀般采⽤离散变量。

4缺失值处理

数据分析过程中会⾯对很多缺失值,其产⽣原因不同,有的是由于隐私的原因,故意隐去。有的是变量本⾝就没有数值,有的是数据合并时

不当操作产⽣的数据缺失。

缺失值处理可以采⽤替代法(估值法),利⽤已知经验值代替缺失值,维持缺失值不变和删除缺失值等⽅法。具体⽅法将参考变量和⾃变量

的关系以及样本量的多少来决定。

5异常值检测和处理

异常值对于某些数据分析结果影响很⼤,例如聚类分析、线性回归(逻辑回归)。但是对决策树、神经⽹络、SVM⽀持向量机影响较⼩。

⼀般异常值是指明显偏离观测值的平均值,例如年龄为200岁,平均收⼊为10万元时,有个异常值为300万元。第⼀个异常值为⽆效异常

值,需要删掉,但是第⼆个异常值可能属于有效异常值,可以根据经验来决定是否保留或删掉。

6数据标准化

数据标准化的⽬的是将不同性质、不同量级的数据进⾏指数化处理,调整到可以类⽐的范围。例如在建⽴逻辑回归模型时,性别的取值是0

或以,但是收⼊取值可能就是0-100万,跨度较⼤,需要进⾏标准化。

⼀般可以采⽤最佳/最⼤标准化(Min-Max标准化法)将数值定在0和1之间,便于计算。Z分数法和⼩数定标标准化法也可以采⽤。

7数据粗分类(Categorization)处理

归类和分类的⽬的是减少样本的变量,常有的⽅法由等间距分类,等频数分类。可以依据经验将⾃变量分成⼏类,分类的⽅法可以不同,建

议采⽤卡⽅检验来决定采⽤哪种分类⽅法。连续型变量可以⽤WOE变化⽅法来简化模型,但降低了模型的可解释性。

8变量选择

数据分析过程中会⾯对成百上千的变量,⼀般情况下只有少数变量同⽬标变量有关,有助于提⾼预测精度。通常建模分析时,有意义的变量

不会超过10-15个,称他们为强相关变量(聪明变量)。可以利⽤变量过滤器的⽅法来选择变量。常见的变量过滤器应⽤场景如下。

三、数据分析过程

1向业务部门进⾏调研,了解业务需要解决的问题,将业务问题映射成数据分析⼯作和任务

2调研企业内外部数据,找到分析需要的数据,将数据汇聚到⼀个特定的区域,数据集市或数据仓库,探索性分析

3数据清洗,包括检查数据的⼀致性,处理异常值和缺失值,删除重复数据等

4数据转换,例如数据分箱(Binning),将字符型变量转化为数字型变量,按照数据所需维度进⾏汇总

5建⽴模型,按照业务需求建⽴不同模型(例如客户流失预警、欺诈检测、购物篮分析、营销响应等)

6模型结果解释和评估,业务专家进⾏业务解释和结果评价

四、⼤数据分析场景和模型应⽤

数据分析建模需要先明确业务需求,然后选择是描述型分析还是预测型分析。如果分析的⽬的是描述客户⾏为模式,就采⽤描述型数据分

析,描述型分析就考虑关联规则、序列规则、聚类等模型。

预测型数据分析就是量化未来⼀段时间内,某个事件的发⽣概率。有两⼤预测分析模型,分类预测和回归预测。常见的分类预测模型中,⽬

标变量通常都是⼆元分类变量例如欺诈与否,流失与否,信⽤好坏等。回归预测模型中,⽬标变量通常都是连续型变量,常见的有股票价格

预测、违约损失率预测(LGD)等。

⽣存分析聚焦于将事件的结果和出现这⼀结果所经历的时间进⾏分析,源于医疗领域,研究患者治疗后的存活时间。⽣存分析可也可以⽤于

预测客户流失时间,客户下次购买时间,客户违约时间,客户提前偿还贷款时间,客户下次访问⽹站时间等。

常见的数据分析应⽤场景如下

1市场营销

营销响应分析建模(逻辑回归,决策树)

净提升度分析建模(关联规则)

客户保有分析建模(卡普兰梅尔分析,神经⽹络)

购物蓝分析(关联分析Apriori)

⾃动推荐系统(协同过滤推荐,基于内容推荐,基于⼈⼝统计推荐,基于知识推荐,组合推荐,关联规则)

客户细分(聚类)

流失预测(逻辑回归)

2风险管理

客户信⽤风险评分(SVM,决策树,神经⽹络)

市场风险评分建模(逻辑回归和决策树)

运营风险评分建模(SVM)

欺诈检测(决策树,聚类,社交⽹络)

五、数据模型评价的⽅法

1AUC值判别法

AUC⼩于0.7识别能⼒很弱

AUC在0.7-0.8之间识别能⼒可接受

AUC在0.8-0.9之间识别能⼒卓越

AUC⼤于0.9模型出现意外

2KS判别法

KS值⼤于0.2就表⽰具有较好的可预测性

本⽂⼤部分内容来源于BartBaens所著《AnalysisinaBigDataWorld:TheEsntialGuidetoDataScienceanditsApplications》。中

⽂书名为《⼤数据分析数据科学应⽤场景与实践精髓》柯晓燕张纪元翻译

本文发布于:2022-11-12 03:39:01,感谢您对本站的认可!

本文链接:http://www.wtabcd.cn/fanwen/fan/88/2055.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

上一篇:usted
下一篇:一路平安英文
标签:unknow
相关文章
留言与评论(共有 0 条评论)
   
验证码:
推荐文章
排行榜
Copyright ©2019-2022 Comsenz Inc.Powered by © 专利检索| 网站地图