在海量的数据中,大部分数据是有缺陷的,这样的缺陷主要体现在数据项有缺失值,数据值出现异常,数据之间没有归一化从而不具有可比性等。数据预处理中的数据清洗工作就是用来弥补这些数据缺陷。
缺失值
比如使用用户信息中心的数据对用户结构进行分析,但是如果这些在产品中不是必填项,切填与不填产品与服务前后差异不大,这个时候用户往往会忽略填写,甚至胡乱填写,产生异常值,造成数据缺失,此时要用三步走:定、删、补。
定:定性与定量的了解数据;对已经收集回来并储存在数据库里的数据,了解数据库中哪些字段有缺失,确实比例如何,这是一种定量的了解(寻遍所有数据库中所有记录的属性即可);明确有缺失数据的字段重要性如何,这是一种定性的描述(需要与业务场景相结合)。
删:当在对业务有清晰的判断的情况下,如果一个字段对于后续的业务没有太多的帮助,便可直接删除;如果即便这个数据项目对业务很有帮助,但是难以直接或通过间接的方式补齐,也只能作罢。对于这种情况,仅有极少量样本在该字段上有数据,则可采用少数样本特例讨论的方式抓取来单独研究,而对于整体啧选择直接删除这个字段。
补:使用业务知识/经验进行填充(K12的教育数据,年龄缺失时,可以根据对应年级的学生的年龄对缺失项进行补齐);使用均值、中位数、众数进行填充和补全(收入范围可以用全体用户的收入均值补齐缺失项);使用其他渠道的补充(手机号反应归属地,身份证包含年龄)。
特出情况特殊分析,随机应变才是贯穿数据处理的主线
异常值
例如因为用户填写习惯或是系统原因导致数据在汇总中出现格式不同意的情况等,整体上说,数据异常主要体现在四个方面:格式、字符、合理性、一致性。
格式:有时间日期、数值以及其他一些固定格式的情况,如时间的表示方法有多种,这时就要用统一的方式来进行规整,使之具有统一的格式,如时间格式统一转化为时间戳。如果不同意会被当做不同的数据处理。
字符:由于半角空格或全角空格,或者是因为用户填写错误或后台程序读取与编写错误导致的字符错误,也会给数据分析带来一层障碍。
合理性:没有缺失也没有填写错误,但是却不符合常理。如年龄200等,这种情况下,要对数据进行一些常理性的推理,但在具体的业务场景下,还应该尽可能地给出更多验证其是否合理的约束条件。
一致性:在一些情况下,不同字段可以进行相互验证,例如身份证号码和出生年月。
数据工作考验一个人认真负责的态度,应当尽力去寻找解决方案。
归一化
大体上就是将多个有量纲的数变成一个漫游量纲的数,表象就是对有量纲的数据进行处理,而本质是将原本带有单位的绝对数量变成了没有单位的相对数量,经过这样的变化去掉了数值本身的含义,保留数据之间相对大小和比例关系,归一化除了可以避免极值问题外,一些算法模型也需要数据归一化作为输入。
最值归一化:使用一组数据中最大值和最小值进行归一化,适用于有限定范围的数据。
均值方差归一化:适用于没有明显边界的数据,最好是正态分布的数据。使用均值方差归一化可以把服从某种分布的数据变换为标准的正态分布数据。
非线性归一化:适用于处理极致情况,例如展示10与100000,使用log运算进行非线性归一化
这样就可以将两个数在表格上等量齐观的展示出来
网友评论