本书主要根据作者近几年在清华大学面向研究生和本科生开设的数据挖掘:方法与应用课程的教学实践与积累,参考近几年国外著名大学相关课程的教学体系编写而成。本书系统地介绍数据挖掘的基本概念和基本原理方法;结合一些典型的应用实例展示用数据挖掘的思维方法求解问题的一般性模式与思路。 本书可作为有一定数据结构、数据库和程序设计基础的研究生或本科生开展数据挖掘知识学习和研究的入门性教材与参考读物。
了解数据挖掘的基本概念,掌握数据分析技术,开展数据挖掘相关领域的工作和学习研究。
数据挖掘: 方法与应用课程是清华大学计算机系面向清华大学全校非信息类工科专业学生所开设的公选课程。自从2011年春季学期开设课程以来,课程内容、教学体系和作业考核方式等方面的教学改革工作一直在进行探索。课程教学团队陆续完成了如下几大方面的教学改革探索。
首先,教学团队根据早期的教学体例,在2014年编著出版了课程的配套教材《数据挖掘: 方法与应用》。
其次,教学团队根据课程教学案例的展示情况,在2017年精选了一批有代表性的跨专业背景的优秀课程作业案例并结集出版教学参考书《数据挖掘: 方法与应用应用案例》。至此,课程系列化的教材初步形成。2020年上述系列化教材获得清华大学优秀教材二等奖。
第三,在课件体例的编排和内容扩展方面,第1版教学课件于2014年初步成型,其中,中文版课件通过配套图书向外界共享。从2019年开始利用连续三年的教学实践,逐步扩充了的教学内容,并形成新版的教学课件,特别扩充了数据挖掘中的数据获取、深度学习和数据可视化等方面的专题性内容,使整体教学课件内容的体系更加丰富和完善。
第四,在课程作业环节的探索方面,课程从2019年开始探索将工业界的实际数据挖掘任务以高难度挑战作业的形式引入到课程的教学环节,让课堂上学有余力的学生进一步提升分析问题和解决问题的能力。该项教学改革方面的探索也获得清华大学教育教学改革项目的支持。
第五,在课程教学内容的改革创新上,特别是课程的高级专题讲授环节,多次邀请了工业界在行业数据挖掘领域卓有建树的企业CTO进行行业数据挖掘案例的分享,以扩展同学们在数据挖掘领域的视野,加深对于面对问题分析的洞察力,效果显著。
随着时代和行业应用的发展,对于数据挖掘课程提出了更多、更新、更高的教学要求。为了应对这样的变化,《数据挖掘: 方法与应用》(第2版)在原书的基础上进行了如下内容的扩展。
首先,新补充了数据获取章节。由于传统的数据挖掘工作都是假设数据已经准备好的前提下而开展的,但在实际应用研发工作中,数据获取仍然是一个工程技术上面临的重大挑战。为了克服由于数据不足而带来的问题,本书结合数据挖掘领域近几年研发的进展情况,概述了数据获取的主要方法和相关的技术手段,以作为未来深入开展数据获取的引导性内容。
其次,新补充了深度学习章节。近年来,以深度学习为代表的数据驱动类型的机器学习方法得到了各方面的广泛应用。相比于传统的机器学习方法,深度学习方法能够学习出有效的分类特征,并获得更高的分类精度。基于此,本书第2版中补充了深度学习一章,作为学习深度学习方法的综述性引导。
第三,新补充了数据可视化章节。数据挖掘的目的是为了发现数据中隐藏的有价值的知识,而以往发现的知识常常表现为一种抽象形式,决策者很难有直观的理解。为此,数据挖掘领域常常会采用数据可视化的方法来直观地呈现数据挖掘与分析的结果。基于此,本书第2版中补充数据可视化一章内容,以此起到学习数据可视化方法与技术的引领目的。
在上述内容扩展的基础上,形成了今天《数据挖掘: 方法与应用》(第2版)呈现在各位读者面前,希望能对新发展和新应用背景下开展数据挖掘教学和相关实践工作起到导引的作用。
另外,本书第1版、第2版和配套案例教材的相关共享资料(课件、代码、数据集等)将在开源共享社区github和清华大学出版社官网www.tup.com.cn同步发布,并即时更新。欢迎各位读者留言与反馈,或发邮件至bailj@tup.tsinghua.edu.cn。
本书第2版成稿之际,感谢2020年春季、2021年春季课程助教余文梦、吴至婧同学为本书内容整理付出的巨大努力;感谢赵少杰、陈小飞同学为相关材料收集、文献调研和书稿排版做出的贡献。
作者2021年7月6日第1版前言
近年来,随着计算机硬件资源成本的持续下降,软件开发技术的不断进步,基于不同领域的大数据(Big Data)研究与应用性研发工作正在如火如荼地开展起来。作为大数据挖掘、分析与处理的关键方法与技术之一,数据挖掘正在被不同的专业领域所关注,数据挖掘也逐渐演变成一门具有通用性和基础性的数据处理方法与技术。正是在这样的大环境背景之下,作者于2011年春季学期开始开设了面向清华大学非计算机专业学生的专业课程数据挖掘: 方法与应用。开设这门课程的主要目的是为了让不同专业领域的学生能够掌握数据挖掘的基本概念、基本方法和基本算法实现技术,能够针对不同专业领域的数据挖掘与分析问题,开展相应的数据挖掘与分析工作。
参照国外相关大学的教材、课件和应用实例,本书内容的编排顺序主体上是按照一个典型的知识发现过程进行编排的,分别是基本概念、数据预处理、数据仓库构建、关联规则挖掘与相关性分析、聚类分析(无监督的学习分类)、分类方法(有监督的学习分类)。在相关方法与算法讲解的基础之上,进一步展示用本书所介绍的数据挖掘与相关知识开展的一个快速消费品领域消费者调查问卷的挖掘与分析实例,以及在此基础上所构建的一个消费者皮肤状况预测模型。
作为面向非计算机专业学生的课程,本书以介绍概念和讲解方法的主要思想为主。对于有进一步深入学习需求的学生,建议进一步研读高级机器学习、高级数据挖掘等知识内容相关的书籍。在课程教学计划安排上,建议理论方法讲解安排32学时,同时安排16学时的课程实践与讨论环节,以进一步增强学生在数据挖掘与分析方面的应用实战能力,提升未来对于本专业领域数据挖掘与分析的能力。
由于作者水平所限,本书在编写过程中纰漏和疏忽之处在所难免,望读者不吝指正。
徐华2014年初春于清华园
徐华,清华大学计算机系副教授,博士生导师。长期担任数据挖掘、网络产品设计等相关本科研究生课程的教学工作。主要从事智能机器人相关的智能优化调度、智能交互方面的研究工作。目前发表国际期刊论文40篇,领域国际会议论文70篇,获得国家科技进步二等奖一次,省部级政府科技奖励4次,行业协会科技发明一等奖2次。
第1章绪论1
1.1应用背景1
1.1.1商业上的驱动2
1.1.2科学研究上的驱动2
1.1.3数据挖掘伴随着数据库数据库技术而出现2
1.2什么是数据挖掘3
1.2.1基本描述3
1.2.2知识发现知识发现4
1.3数据挖掘的主要技术5
1.4数据挖掘的主要研究内容7
1.5数据挖掘面临的主要问题10
1.6数据挖掘相关的资料11
1.7本书的总体章节安排12
1.8小结13
参考文献13
第2章数据获取15
2.1引言15
2.2背景介绍15
2.3数据采集17
2.3.1数据发现17
2.3.2数据增强18
2.3.3数据生成18
2.4数据标注19
2.4.1利用现有标签19
2.4.2基于众包技术19
2.4.3使用弱监督学习的方法20
2.5提升已有数据和模型20
2.5.1提升已有数据20
2.5.2提升已有模型21
2.6技术选择指南21
2.7小结21
参考文献21
第3章数据预处理23
3.1引言23
3.2数据预处理的基本概念23
3.2.1数据的基本概念23
3.2.2为什么要进行数据预处理26
3.2.3数据预处理的任务27
3.3数据的描述27
3.3.1描述数据的中心趋势28
3.3.2描述数据的分散程度30
3.3.3描述数据的其他方式31
3.4数据清洗33
3.4.1数据缺失的处理33
3.4.2数据清洗34
3.5数据集成和转换36
3.5.1数据集成36
3.5.2数据冗余36
3.5.3数据转换38
3.6数据归约和变换39
3.6.1数据归约39
3.6.2数据离散化42
3.6.3概念层次生成43
3.7小结44
参考文献45
第4章数据仓库46
4.1引言46
4.2数据库基本概念回顾46
4.2.1数据库简介47
4.2.2表、记录和域47
4.2.3数据库管理系统47
4.3数据仓库简介48
4.3.1数据仓库特点48
4.3.2数据仓库概念49
4.3.3数据仓库作用50
4.3.4数据仓库与DBMS对比50
4.3.5分离数据仓库的原因51
4.4多维数据模型52
4.4.1数据立方体52
4.4.2概念模型54
4.4.3概念分层概念分层57
4.4.4典型OLAP操作58
4.4.5星型网络的查询模型60
4.5数据仓库结构61
4.5.1数据仓库设计61
4.5.2多层体系结构63
4.6数据仓库的功能64
4.6.1数据立方体的有效计算64
4.6.2索引OLAP数据69
4.6.3OLAP查询的有效处理70
4.7从数据仓库到数据挖掘70
4.7.1数据仓库应用70
4.7.2从OLAP到OLAM71
4.8小结73
参考文献73
第5章相关性与关联规则75
5.1基本概念75
5.1.1潜在的应用75
5.1.2购物篮问题购物篮问题76
5.1.3频繁模式分析、闭项集和关联规则76
5.2频繁项集挖掘方法78
5.2.1Apriori算法78
5.2.2由频繁项集产生关联规则80
5.2.3提高Apriori的效率81
5.2.4挖掘频繁项集的模式增长方法82
5.3多种关联规则挖掘关联规则挖掘84
5.3.1挖掘多层关联规则84
5.3.2挖掘多维关联规则86
5.3.3挖掘量化关联规则87
5.4从关联分析到相关分析相关分析88
5.4.1相关分析89
5.4.2强规则不一定是有价值的89
5.4.3挖掘高度关联的模式90
5.5基于约束的频繁模式挖掘91
5.5.1关联规则的元规则制导挖掘91
5.5.2基于约束的模式生成: 模式空间剪枝和数据空间剪枝92
5.6小结94
参考文献94
第6章分类和预测100
6.1引言100
6.2基本概念100
6.2.1什么是分类100
6.2.2什么是预测102
6.3关于分类和预测的问题102
6.3.1准备分类和预测的数据102
6.3.2评价分类和预测方法102
6.4决策树决策树分类103
6.4.1决策树归纳104
6.4.2属性选择度量104
6.4.3提取分类规则107
6.4.4基本决策树归纳的增强108
6.4.5在大数据集中的分类108
6.5贝叶斯分类108
6.5.1贝叶斯定理109
6.5.2朴素贝叶斯分类朴素贝叶斯分类109
6.5.3贝叶斯信念网络贝叶斯信念网络111
6.5.4贝叶斯网络学习112
6.6神经网络113
6.6.1神经网络神经网络简介114
6.6.2多层神经网络114
6.6.3神经网络训练115
6.6.4后向传播115
6.6.5网络剪枝和规则抽取117
6.7支持向量机118
6.7.1数据线性可分的情况118
6.7.2数据线性不可分的情况120
6.7.3支持向量机和神经网络的对比122
6.8关 联 分 类关联分类122
6.8.1为什么有效123
6.8.2常见关联分类算法123
6.9分类准确率123
6.9.1估计错误率124
6.9.2装袋装袋和提升提升124
6.10小结126
参考文献126
第7章深度学习129
7.1引言129
7.2卷积神经网络129
7.2.1卷积运算129
7.2.2卷积层130
7.2.3池化层132
7.2.4典型结构及其应用133
7.3循环神经网络134
7.3.1循环神经网络135
7.3.2长短期记忆神经网络135
7.3.3门控循环单元网络136
7.3.4双向循环神经网络137
7.3.5典型结构及其应用138
7.4常用的深度学习框架139
7.5小结139
参考文献139
第8章聚类分析141
8.1聚类分析的定义和数据类型141
8.1.1聚类的定义141
8.1.2聚类分析和主要应用142
8.1.3聚类分析方法的性能指标143
8.1.4聚类分析使用的数据类型143
8.2聚类分析方法分类与相似性质量145
8.2.1聚类分析方法分类145
8.2.2连续变量的距离与相似性度量146
8.2.3二元变量与标称变量的相似性度量148
8.2.4序数和比例标度变量的相似性度量149
8.2.5混合类型变量的相似性度量149
8.3基于分割的聚类150
8.4基于层次的聚类153
8.5基于密度的聚类157
8.6基于网格的聚类158
8.7基于模型的聚类159
8.8离群点离群点检测离群点检测160
8.9小结161
参考文献161
第9章数据可视化163
9.1引言163
9.2数据可视化的参考模型163
9.3数据可视化的基本准则164
9.3.1正确性164
9.3.2高效性165
9.3.3可观性166
9.44类典型数据的可视化166
9.4.1统计数据可视化166
9.4.2文本数据可视化167
9.4.3网络关系数据可视化168
9.4.4时空数据可视化170
9.5小结170
参考文献171
第10章数据挖掘应用172
10.1引言172
10.2应用研发思路173
10.3预处理方法173
10.3.1基础数据说明173
10.3.2数字化方法说明173
10.3.3深入一步的预处理方法175
10.3.4基本数据分布情况说明177
10.3.5初步分析结果178
10.3.6小结181
10.4特征提取方法181
10.4.18种特征提取方法181
10.4.2特征总体排名策略182
10.4.3终关键特征183
10.4.4特征提取与分析结论187
10.4.5小结188
10.5皮肤特征预测模型188
10.5.1预测方法回顾189
10.5.2预测结果分析与结论190
10.5.3小结200
10.6小结201
参考文献202
附录203
附录A插图索引203
附录B表格索引205
附录C算法索引207
附录D关键词索引207