目录javascript
当咱们获得数据后,接下来就是要考虑样本数据集的数据和质量是否知足建模的要求?是否出现不想要的数据?能不能直接看出一些规律或趋势?每一个因素之间的关系是什么?
经过检验数据集的数据质量,绘制图表,计算某些特征值等手段,对样本数据集的结构和规律进行分析的过程就是数据探索。数据质量检测对后面的数据预处理有很大参考做用,并有助于选择合适的建模方法。
数据探索大体分为 质量探索 和 特征探索 两方面。
java
定义:数据质量分析是数据预处理的前提,也是对数据挖掘的结果有效性和准确性的保证,只有拥有可信的数据,才可以构建准确的模型。
主要任务: 检测是否存在脏数据(不符合要求与不能方便地进行分析的数据)。包括缺失的数据,异常的数据,不一致的数据,以及含有其余不标准符号以及重复的数据。测试
数据的缺失主要包括 记录的缺失 和 记录中某个字段的缺失 。他们都会形成分析结果的不许确。
产生缘由是一些信息没法获取或者在收集获取的时候出现了遗漏或者设计的时候的一些值在获取的时候并无。
数据缺失会丢失大量有用信息,或者形成建模混乱,获得的模型不许确,规律难以获得。
使用简单的统计分析,能够获得含有缺失值的属性的个数,以及缺失数,缺失率等。this
异常值分析是检验数据是否有录入错误以及含有不合常理的数据。经过检测数据是否有异常,发现问题并而找到改进的策略。
异常值是指样本中的个别值,数值明显偏离其他的观测值,故又叫离群值。
分析步骤:
(1)简单统计量分析
首先能够经过一些常见的检测值对变量作一个探索,查看哪些数据是不合情理的。好比用最大值和最小值,和实际的的现实意义联系判断变量取值是否合理。
(2)正态分布原则
正态分布原则就是异常值被定义为一组测试值中与平均值的误差超过三倍标准差的值。
(3)箱型图分析
箱型图提供的一个识别异常值的一个标准,异常值一般被定义为小于Ql - 1.5IQR或大于Qu + 1.5IQR的值。Ql称为下四分位数,表示样本值中有四分之一
比它小;Qu成为上四分位数,表示样本值中有四分之一比它大;IQR是四分位数间距,是QI和Qu的差,包括所有样本的一半。
实例:
这里咱们首先先爬取华为手机日销量数据,以下:
设计
咱们规定商品的价格的平均值先后必定范围价格为正常值,来分析全部商品的价格状况。
可是有些数据是缺失的,并且数据多的时候人工识别不出,能够用程序
检测含有缺失值的记录和属性以及个数,来求缺失率。
数据的基本状况:
code
这里能够看到数据一共有147939条,还能够获得平均值(mean),标准差(std),最小值(min),最大值(max)以及四分位数等。
下面能够用箱型图检测异常值。blog
import pandas as pd import matplotlib.pyplot as plt plt.rcParams['font.sans-serif'] = ['SimHei'] # 用来正常显示中文标签 plt.rcParams['axes.unicode_minus'] = False # 用来正常显示负号 data = '淘宝天猫.csv' this_price = pd.read_csv(data,usecols = ['价格'],encoding = 'utf-8') plt.figure() # 创建图像 p = this_price.boxplot(return_type='dict') x = p['fliers'][0].get_xdata() 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()
以前未处理的图片
图片
处理后的图片
ip
能够根据不一样的需求进行调节,而后按照不一样规则进行选取和分析数据。utf-8
数据不一致是指数据的矛盾性,不相容性,可能有不一样表之间的联系,而后改变了其余表但并未改变与之相连的表。