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

2020-02-10  本文已影响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()

异常值分析

简单统计量分析

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

3δ原则

箱型图分析法

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

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以上则属于异常数据、编写过滤程序,进行后续处理。

一致性分析

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

上一篇 下一篇

猜你喜欢

热点阅读