关于数据挖掘:大数据之路-一算法建模中的数据清洗

37次阅读

共计 1961 个字符,预计需要花费 5 分钟才能阅读完成。

作者:Mochou

起源:恒生 LIGHT 云社区

在以后大数据的背景下,数据处理占了极大的份额,就像一个西红柿做成西红柿炒鸡蛋,须要通过调料整合,菜料荡涤,饭菜加工等等能力公布到生产,不,发送到餐桌。

这里简略分享一下我对数据荡涤的了解,其具备很重要的位置,不然面对着脏乱差的西红柿炒鸡蛋,没人违心下口。

一份未经荡涤过的数据个别会存在这些不合乎剖析要求的问题:比方反复,谬误,空值,异样数据等,对于谬误数据,因为是业务源头问题,比方性别明明是男却成了女,这些咱们无奈解决,只能从源端进行标准,就像顾客想吃河南的西红柿,厨房里进的只有山东的,这个厨师没方法解决,只能告诉进货商更改。故咱们只对另外三个问题进行荡涤批改,必须申明一点,所有的荡涤都要基于理论业务来做,比方反复,可能业务要的就是反复,你给人家洗掉了,就产生了问题

一 . 反复

如果理论业务不要反复值,反复值能够间接删除,比方数据库里能够在整合合并时用 union 而不是 union all,不反对 union 的能够用主键分组排序取第一个

row_number() over (partition by .. order by..desc) as..

如果也不反对 row_number,,,那好好活着吧。

其余语言也都有相似的去重函数,如 python 能够间接用 drop_duplicates()

二 . 缺失

缺失也就是空值,须要明确一点,‘空’有两种状况,一种是真正的对象为空,即 null,一种是空值,即 xxx=”,所以咱们解决这些空值时须要分两种状况,一种是 xxx is null,一种是 length(trim(xxx))=0。

空值解决个别是填补,这个依据理论业务须要来做,一般来讲,

  • 空值数量比拟小时能够填补上间断值的某一个,比方平均数,中位数等;
  • 空值较多时,占了五成以上,能够思考应用众数来填补;
  • 空值占了绝大部分,这个时候就没必要再用原有的数据,能够本人造数据,生成一个批示哑变量,参加后续的建模须要。

后面曾经说过在数据库里怎么解决,这里说下在 python 里如何解决

# 列出空值在每个列所占的比重
# df 是数据集,col.size 是以后数据的行数
df.apply(lambda col:sum(col.isnull())/col.size)
# 用均值填补,应用 pandas 包里的 fillna
df.col1.fillna(df.col1.mean())
三 . 噪声值

噪声值是指数据中与其余数值相比差别比拟大的值,也有的叫离群点等,比方年龄里进去几个 150 以上的。噪声值会重大烦扰模型后果,使论断不实在或偏颇。所以必须要革除这些噪声值,罕用的办法:对于单变量的有盖帽法,分箱法,多变量的有聚类法。

  • 盖帽法

咱们都学过正态分布,对于均值高低三倍标准差范畴外的记录值加一块的概率才为 0.01%,故咱们能够把这些外围数据替换为各自的均值高低三倍规范差值,即为盖帽法

数据库里能够用 case when 来替换,python 能够写一个函数

def cap(x,quantile=[0.01,0.99]):
''' 盖帽法解决异样值
Args:x:是 series 列,连续变量
    quantile: 高低分位数范畴,这里写为 0.01 和 0.99
'''
 
# 生成分位数,Q01,Q99 别离是百分之一分位点和百分之 99 分位点
    Q01,Q99=x.quantile(quantile).values.tolist()
 
# 替换异样值为制订的分位数
 
    if Q01 > x.min():
        x = x.copy()
        x.loc[x < Q01] = Q01
    if Q99 < x.max():
        x = x.copy()
        x.loc[x > Q99] = Q99
    return(x)
  • 分箱法

分箱法通过考察数据的“近邻”来润滑有序数据的值,有序值散布到一些箱中,通过取各个箱子的特定值如最值,均值,中位数等,这个值就是这个箱子的值,而后置定规范评判这些箱子的值好坏,从而判断各个箱子是好的还是坏的,坏的箱子须要非凡解决。分箱法分为等深分箱:每个分箱样本量统一,等宽分箱:每个分箱取值范畴统一。

比方一组数 1 2 66 8 9 2 1 4 6,先排序 1 1 2 2 4 6 8 9 66,再分为三个箱子
箱子 A:1 1 2
箱子 B:2 4 6
箱子 C:8 9 66

咱们这里取箱子的平均数, 则 A 为 1.3 B 为 4 C 为 27.3 很显著这个 C 值远远大于这组数据的均值和中位数,所以 C 箱子是坏箱子,则能够集中处理 C 里的数据

  • 聚类法

后面介绍的都是单变量,多变量的异样值解决须要用到聚类法。

它的思维是正常值都领有类似的标签,比方后面好的西红柿色彩都是红润的,口感都是酸甜的,表皮都是残缺的等等,而坏的西红柿则领有异于“别人”的特色,比方滋味怪异。故咱们能够把数据对象分为多个汇合,在同一个汇合里的对象有较高的类似度,而不同的汇合之间的对象差异较大。聚类分析能够通过这些不同的汇合挖掘出孤立点,这些孤立点往往就是异样数据。

正文完
 0