美文网首页
【数据分析】-001数据探索篇-数据质量分析

【数据分析】-001数据探索篇-数据质量分析

作者: 张雅琛 | 来源:发表于2020-02-10 00:51 被阅读0次

    数据质量分析

    数据质量分析是数据挖掘中数据准备过程的重要一环,是数据预处理的前提,也是数据挖掘分析结论有效性和准确性的基础。

    脏数据

    • 缺失值
    • 异常值
    • 不一致的值
    • 重复数据及含有特殊符号(如#、¥,*)的数据。

    缺失值分析

    缺失值产生的原因

    (1)有些信息暂时无法获取,或者获取信息的数据量代价太大。
    (2)有些信息是被遗漏的。
    (3)属性值不存在。

    缺失值的影响

    (1)数据挖掘建模将丢失大量有用的信息。
    (2)数据挖掘模型所表现出的不确定性更加显著、模型中蕴藏的规律更加难把握。
    (3)包含空值的数据会使建模过程陷入混乱,导致不可靠的输出。

    缺失值的分析

    简单的统计分析,可得到含有缺失值的属性的个数,以及每个属性的未缺失数、确实数与缺失率等。

    import pandas as pd
    catering_sale = '../data/catering_sale.xls'# 餐饮数据
    data = pd.read_excel(catering_sale,index_col=u'日期')#读取数据,指定“日期”列为索引列
    data.head()
    
    data.describe()
    
    • count 非空数值 len(data) 201条
    • mean 平均值
    • std 标准差
    • min 最小值
    • max 最大值
    • 1/4,1/2,3/4 分位数(25%,50%,75%)

    异常值分析

    简单统计量分析

    通常用的统计量是最大值和最小值,用来判断这个变量的取值是否超出了合理范围。

    3δ原则

    • 如果数据服从正态分布,在3δ原则下,异常值被定义为一组测定值中平均值的偏差超过3倍标准差的值。
      在正态分布的假设下,距离平均值3δ之外的值出现的概率为p(|x − μ| > 3) ≥ 0.003 ,属于极个别的小概率事件。
    • 如果数据不服从正态分布,也可以用远离平均值的多少倍标准差来描述。

    箱型图分析法

    箱型图提供了识别异常值的一个标准:异常值通常定义为小于Q_L-1.5IQR 或大于Q_U+1.5IQR的值。

    • Q_L:称为下四分位数,表示全部观察值中有四分之一的数据取值比它小
    • Q_U:称为上四分位数,表示全部观察值中有四分之一的数值取值比它大
    • IQR:称为四分位数间距,是上四分位数 与下四分位数 之差,其间包含了全部观察值的一半。
    import matplotlib.pyplot as plt # 导入图像库
    import pandas as pd
    data = pd.read_excel(catering_sale, index_col=u'日期') # 读取数据,指定“日期”列为索引列
    %matplotlib inline
    plt.rcParams['font.sans-serif'] = ['SimHei'] # 用来正常显示中文标签
    plt.rcParams['axes.unicode_minus'] = False # 用来正常显示负号
    plt.figure() # 建立图像
    p = data.boxplot(return_type='dict') # 画箱线图,直接使用DataFrame的方法
    x = p['fliers'][0].get_xdata() # 'flies'即为异常值的标签
    y = p['fliers'][0].get_ydata()
    y.sort() # 从小到大排序,该方法直接改变原对象
    # 用annotate添加注释
    # 其中有些相近的点,注解会出现重叠,难以看清,需要一些技巧来控制。
    # 以下参数都是经过调试的,需要具体问题具体调试。
    for i in range(len(x)):
        if i > 0:
            plt.annotate(y[i],xy=(x[i], y[i]),xytext=(x[i] + 0.05 - 0.8 / (y[i] - y[i - 1]), y[i]))
        else:
            plt.annotate(y[i], xy=(x[i], y[i]), xytext=(x[i] + 0.08, y[i]))
    plt.show() # 展示箱线图
    

    餐饮销额数据异常值检测代码



    缺失值个数为:1
    箱型图的超过上下界的7个销售额数据可能为异常值
    结合具体业务可以把:865,4060.3归为正常值,将22,51,6607.4、9106.44归为异常值。
    最后确定过滤规则为:日销售量在400以下5000以上则属于异常数据、编写过滤程序,进行后续处理。

    一致性分析

    数据的不一致性是指数据的矛盾性,不相溶性。 在数据挖掘的过程中,这可能是由于被挖掘的数据是来自于从不同的数据源,对于重复存放的数据未能进行一致性更新造成的。

    相关文章

      网友评论

          本文标题:【数据分析】-001数据探索篇-数据质量分析

          本文链接:https://www.haomeiwen.com/subject/pclnxhtx.html