《R语言数据分析与挖掘实战》——第3章 数 据 探 索 3.1 数据质量分析

简介:

本节书摘来自华章计算机《R语言数据分析与挖掘实战》一书中的第3章,第3.1节,作者 张良均,云伟标,王路,刘晓勇,更多章节内容可以访问云栖社区“华章计算机”公众号查看。

第3章 数 据 探 索  

根据观测、调查收集到初步的样本数据集后,接下来要考虑的问题是:样本数据集的数量和质量是否满足模型构建的要求?有没有出现从未设想过的数据状态?其中有没有什么明显的规律和趋势?各因素之间有什么样的关联性?

通过检验数据集的数据质量、绘制图表、计算某些特征量等手段,对样本数据集的结构和规律进行分析的过程就是数据探索。数据探索有助于选择合适的数据预处理和建模方法,甚至可以完成一些通常由数据挖掘解决的问题。

本章从数据质量分析和数据特征分析两个角度对数据进行探索。

3.1 数据质量分析

数据质量分析是数据挖掘中数据准备过程的重要一环,是数据预处理的前提,也是数据挖掘分析结论有效性和准确性的基础,没有可信的数据,数据挖掘构建的模型将是空中楼阁。

数据质量分析的主要任务是检查原始数据中是否存在脏数据,脏数据一般是指不符合要求,以及不能直接进行相应分析的数据。在常见的数据挖掘工作中,脏数据包括:

缺失值;

异常值;

不一致的值;

重复数据及含有特殊符号(如#、¥、*)的数据。

本小节将主要对数据中的缺失值、异常值和一致性进行分析。

3.1.1 缺失值分析

数据的缺失主要包括记录的缺失和记录中某个字段信息的缺失,两者都会造成分析结果的不准确,以下从缺失值产生的原因及影响等方面展开分析。

(1)缺失值产生的原因

1)有些信息暂时无法获取,或者获取信息的代价太大。

2)有些信息是被遗漏的。可能是因为输入时认为不重要、忘记填写或对数1据理解错误等一些人为因素而遗漏,也可能是由于数据采集设备的故障、存储介质的故障、传输媒体的故障等非人为原因而丢失。

3)属性值不存在。在某些情况下,缺失值并不意味着数据有错误。对一些对象来说某些属性值是不存在的,如一个未婚者的配偶姓名、一个儿童的固定收入等。

(2)缺失值的影响

1)数据挖掘建模将丢失大量的有用信息。

2)数据挖掘模型所表现出的不确定性更加显著,模型中蕴含的规律更难把握。

3)包含空值的数据会使建模过程陷入混乱,导致不可靠的输出。

(3)缺失值的分析

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

缺失值的处理,从总体上来说分为删除存在缺失值的记录、对可能值进行插补和不处理三种情况,将在4.1.1节详细介绍。

3.1.2 异常值分析

异常值分析是检验数据是否有录入错误以及含有不合常理的数据。忽视异常值的存在是十分危险的,不加剔除地把异常值包括进数据的计算分析过程中,会给结果带来不良影响;重视异常值的出现,分析其产生的原因,常常成为发现问题进而改进决策的契机。

异常值是指样本中的个别值,其数值明显偏离其余的观测值。异常值也称为离群点,异常值的分析也称为离群点分析。

(1)简单统计量分析

可以先对变量做一个描述性统计,进而查看哪些数据是不合理的。最常用的统计量是最大值和最小值,用来判断这个变量的取值是否超出了合理的范围。例如,客户年龄的最大值为199岁,则该变量的取值存在异常。

(2)3σ原则

如果数据服从正态分布,在3σ原则下,异常值被定义为一组测定值中与平均值的偏差超过三倍标准差的值。在正态分布的假设下,距离平均值3σ之外的值出现的概率为P(x-μ>3σ)≤0.003,属于极个别的小概率事件。

如果数据不服从正态分布,也可以用远离平均值的多少倍标准差来描述。

(3)箱形图分析

箱形图提供了识别异常值的一个标准:异常值通常被定义为小于QL-1.5IQR或大于QU+1.5IQR的值。QL称为下四分位数,表示全部观察值中有四分之一的数据 图3-1 箱形图检测异常值取值比它小;QU称为上四分位数,表示全部观察值中有四分之一的数据取值比它大;IQR称为四分位数间距,是上四分位数QU与下四分位数QL之差,其间包含了全部观察值的一半。

箱形图依据实际数据绘制,没有对数据作任何限制性要求,如服从某种特定的分布形式,它只是真实直观地表现数据分布的本来面貌;另外,箱形图判断异常值的标准以四分位数和四分位距为基础,四分位数具有一定的鲁棒性:多达25%的数据可以变得任意远而不会很大地扰动四分位数,所以异常值不能对这个标准施加影响。由此可见,箱形图识别异常值的结果比较客观,在识别异常值方面有一定的优越性,如图3-1所示。


screenshot

在餐饮系统中的销量额数据可能出现缺失值和异常值,例如表3-1中的数据所示。

screenshot

分析餐饮系统日销量额数据可以发现,其中有部分数据是缺失的,但是如果数据记录和属性较多,使用人工分辨的方法就很不切合实际,所以这里需要编写程序来检测出含有缺失值的记录和属性以及缺失率个数和缺失率等。同时,通过观察可以看出日销量额数据也含有异常值,由于这里数据量较大,所以使用箱形图来检测异常值。R语言检测代码如代码清单3-1所示。

screenshot
screenshot

运行上面的程序,可以看到缺失值个数输出结果为“1”,占样本总量的0.497%,缺失值位于第15行,2015年2月14日销量缺失。通过异常值检测箱形图的程序,可以得到如图3-2所示的箱形图。

screenshot

图3-2中,箭头所示的是一个标准差的区间。可以看出箱形图中超过上下界的8个销售额数据可能为异常值。结合具体业务可以把865、4060.3、4065.2归为正常值,将60、22、51、6607.4、9106.44归为异常值。最后确定过滤规则为日销量在400以下5000以上则属于异常数据,编写过滤程序,进行后续处理。

3.1.3 一致性分析

数据不一致性是指数据的矛盾性、不相容性。直接对不一致的数据进行挖掘,可能会产生与实际相违背的挖掘结果。

在数据挖掘过程中,不一致数据的产生主要发生在数据集成的过程中,可能是由被挖掘数据来自于不同的数据源、对于重复存放的数据未能进行一致性更新造成的。例如,两张表中都存储了用户的电话号码,但在用户的电话号码发生改变时只更新了一张表中的数据,那么这两张表中就有了不一致的数据。

相关文章
|
2天前
|
机器学习/深度学习 数据可视化 数据挖掘
从菜鸟到高手,一图胜千言!Python数据分析与机器学习中的数据可视化实战秘籍!
【7月更文挑战第24天】在数据科学中,数据可视化是探索与沟通的关键。从Matplotlib的基础绘图到Seaborn的统计图形,再到Plotly的交互式图表,这些工具助你成为数据叙事大师。示例代码涵盖正弦波图、小费散点图及鸢尾花分布图,展现从简单到复杂的可视化之旅。掌握这些技巧,你就能更有效地解析和呈现数据故事。
|
4天前
|
数据可视化 数据挖掘 数据处理
深度挖掘!Python 数据分析中 Matplotlib 与 Seaborn 的隐藏功能,让数据可视化更出彩!
【7月更文挑战第23天】在Python数据分析中,Matplotlib与Seaborn是关键的可视化工具。Matplotlib提供深度自定义,如调整轴刻度和网格,支持多子图布局。Seaborn基于Matplotlib,简化美观图表生成,内置主题与调色板,适用于复杂统计图形如小提琴图和成对关系图,且无缝集成Pandas数据框。掌握这些库的高级功能,能显著提升数据可视化效果,助力数据分析决策。
15 4
|
5天前
|
数据可视化 数据挖掘 Linux
震撼发布!Python数据分析师必学,Matplotlib与Seaborn数据可视化实战全攻略!
【7月更文挑战第22天】数据科学中,Matplotlib和Seaborn是Python的可视化主力。Matplotlib用于基础图表,如示例中的折线图;Seaborn则强化统计图形,如分布图。两者结合能创建复杂的可视化,如显示趋势与分布的同一图表。通过学习和运用这些工具,数据分析师能提升效率,更好地讲述数据故事。
18 2
|
11天前
|
数据可视化 数据挖掘 Java
深度挖掘数据,智慧决策,VeryReport报表软件引领数据分析新潮流
深度挖掘数据,智慧决策,VeryReport报表软件引领数据分析新潮流
|
22天前
|
数据采集 机器学习/深度学习 数据可视化
关于Python数据分析项目的简要概述:从CSV加载数据,执行数据预处理,进行数据探索,选择线性回归模型进行训练,评估模型性能并优化,最后结果解释与可视化。
【7月更文挑战第5天】这是一个关于Python数据分析项目的简要概述:从CSV加载数据,执行数据预处理(填充缺失值,处理异常值),进行数据探索(可视化和统计分析),选择线性回归模型进行训练,评估模型性能并优化,最后结果解释与可视化。此案例展示了数据科学的典型流程。
41 2
|
1月前
|
数据采集 数据可视化 数据挖掘
数据挖掘实战:使用Python进行数据分析与可视化
在大数据时代,Python因其强大库支持和易学性成为数据挖掘的首选语言。本文通过一个电商销售数据案例,演示如何使用Python进行数据预处理(如处理缺失值)、分析(如销售额时间趋势)和可视化(如商品类别销售条形图),揭示数据背后的模式。安装`pandas`, `numpy`, `matplotlib`, `seaborn`后,可以按照提供的代码步骤,从读取CSV到数据探索,体验Python在数据分析中的威力。这只是数据科学的入门,更多高级技术等待发掘。【6月更文挑战第14天】
78 11
|
11天前
|
JSON 数据挖掘 API
在会议系统工程中,Python可以用于多种任务,如网络请求(用于视频会议的连接和会议数据的传输)、数据分析(用于分析会议参与者的行为或会议效果)等。
在会议系统工程中,Python可以用于多种任务,如网络请求(用于视频会议的连接和会议数据的传输)、数据分析(用于分析会议参与者的行为或会议效果)等。
|
13天前
|
数据采集 数据挖掘 数据处理
Python数据分析加速器:深度挖掘Pandas与NumPy的高级功能
【7月更文挑战第14天】Python的Pandas和NumPy库是数据分析的核心工具。Pandas以其高效的数据处理能力,如分组操作和自定义函数应用,简化了数据清洗和转换。NumPy则以其多维数组和广播机制实现快速数值计算。两者协同工作,如在DataFrame与NumPy数组间转换进行预处理,提升了数据分析的效率和精度。掌握这两者的高级功能是提升数据科学技能的关键。**
15 0
|
1月前
|
数据采集 机器学习/深度学习 数据可视化
数据挖掘实战:Python在金融数据分析中的应用案例
Python在金融数据分析中扮演关键角色,用于预测市场趋势和风险管理。本文通过案例展示了使用Python库(如pandas、numpy、matplotlib等)进行数据获取、清洗、分析和建立预测模型,例如计算苹果公司(AAPL)股票的简单移动平均线,以展示基本流程。此示例为更复杂的金融建模奠定了基础。【6月更文挑战第13天】
285 3

热门文章

最新文章