本书系统介绍了数据挖掘原理、算法和应用的相关知识。主要内容包括:数据存储;数据与处理;数据相似度与异常检测;数据分类和预测;数据聚类分析;数据关联分析等。
随着信息技术的普及和应用,各个领域产生了大量的数据,这些数据被获取、存储下来,其中蕴含着丰富的信息。人们持续不断地探索处理这些数据的方法,以期最大程度地从中挖掘有用的信息,面对如潮水般不断增加的数据,人们不再满足于数据的查询和统计分析,而是期望从数据中提取信息或者知识为决策服务。数据挖掘技术突破了数据分析技术的种种局限,它结合统计学、数据库、机器学习等技术解决从数据中发现新的信息,辅助决策这一难题,是正在飞速发展的前沿学科。一些大型企业对数据挖掘产品和工具的使用都超过20年,并已产生了期望的效应。此外,数据挖掘产品和工具在金融、商业、电信、医学等多个领域也得到广泛推广应用。
数据挖掘并不是要取代其他数据分析技术,而是将它们作为其工作的基矗尽管有些技术(如关联分析)是数据挖掘独有的,但是,另一些技术(如聚类、分类和异常检测)则建立在其他学科长期研究的基础之上。数据挖掘利用已有技术加速其发展,并一直与其他学科的技术紧密结合。成功地进行数据挖掘是综合使用多种技术,以及理解数据的专业人员和数据分析人员合作的成果。
本书结合数据挖掘技术的最新发展,系统地介绍了数据挖掘的基础理论、技术原理、算法和应用,以使读者对数据挖掘有一个系统、全面的了解。本书共9章,第1章主要介绍数据挖掘的基本概念和数据挖掘的过程。第2章主要介绍关系数据集和数据仓库等数据存储方式的基本概念、数据组织及其涉及的关键技术,以及分布式文件系统、NoSQL等大数据存储方式的概念、结构、原理和数据组织方法等。第3章主要介绍了数据预处理的概念和必要性,以及数据清理、数据集成、数据转换、数据归约、数据离散化和特征选择等数据预处理技术。第4章主要介绍了相似度度量的基础知识和5种异常检测方法,并深入分析欧式距离等6种传统的度量方法和大数据度量方法。第5章主要介绍了数据分类和预测的基本概念,决策树分类、贝叶斯分类、神经网络等分类方法,以及预测算法与应用。第6章主要介绍了数据聚类分析的基本概念,以及基于划分、基于层次、基于密度、基于网格和基于模型的聚类算法,还介绍了聚类分析的评估方法及其应用。第7章主要介绍了关联分析的基本概念,分析了关联规则挖掘的两个子任务:频繁项集产生和规则产生,介绍了频繁项集的紧凑表示及产生频繁项集的其他方法、FP-growth算法、关联评估及其应用等内容。第8章主要针对数据挖掘模型的评价和度量介绍了评分函数(包括常用的预测性评分函数和描述性评分函数);介绍了针对数据挖掘模型的成本评价曲线;从评价模型复杂度角度介绍了最短描述长度原则等评价方法;针对模型有效性验证介绍了交叉验证和Bootstrap验证方法;从数据挖掘模型效率和准确率提升角度,介绍了云计算和集成学习方法。第9章主要介绍了针对文本、图像、语音识别、视频、网络拓扑、网络舆情、推荐系统、空间数据和数据流等复杂数据的数据挖掘技术,分析了各类复杂数据的特点,介绍了相关数据挖掘的关键技术。本书涉及的内容较为广泛,在教学时,可根据实际情况选择。
本书由梁亚声编写第1、5章,徐欣编写第8、9章,成小菊编写第6、7章,梁佳领编写第2、3章,朱霞编写第4章。何成宇为第4章的编写提供了部分资料。徐欣对全书进行了统稿。
本书编著得到了国家自然科学基金(61402426)资助。
由于作者水平有限,书中难免存在不妥之处,敬请读者批评指正。
出版说明
前言
第1章 概述
1.1 从数据中获取知识
1.2 数据挖掘的基本概念
1.3 数据挖掘的发展历程
1.4 数据挖掘的功能和数据挖掘系统的分类
1.4.1 分类与回归
1.4.2 聚类分析
1.4.3 关联规则
1.4.4 时序模式
1.4.5 异常检测
1.4.6 数据挖掘系统的分类
1.5 数据挖掘的过程
1.5.1 数据挖掘的一般流程
1.5.2 跨行业数据挖掘标准过程
1.6 数据挖掘与其他学科的关系
1.6.1 数据挖掘与数据库知识发现
1.6.2 数据挖掘与数据库查询
1.6.3 数据挖掘与统计分析
1.6.4 数据挖掘与数据仓库
1.6.5 数据挖掘与联机分析处理
1.6.6 数据挖掘与人工智能、专家系统、机器学习
1.7 数据挖掘的应用和发展趋势
1.7.1 商业的数据挖掘
1.7.2 金融业的数据挖掘
1.7.3 欺诈侦测中的数据挖掘
1.7.4 DNA数据分析中的数据挖掘
1.7.5 电信业中的数据挖掘
1.7.6 科学和统计数据挖掘
1.7.7 数据挖掘系统和软件
1.7.8 数据挖掘的发展趋势
1.8 小结
1.9 习题
第2章 数据存储
2.1 关系数据集
2.2 数据仓库
2.2.1 数据仓库的概念和特点
2.2.2 数据仓库的数据组织
2.2.3 数据仓库的关键技术
2.2.4 数据仓库与数据挖掘的关系
2.3 NoSQL数据库
2.3.1 NoSQL概念与理论
2.3.2 NoSQL数据模型
2.3.3 NoSQL与关系数据库
2.4 分布式文件系统
2.4.1 分布式文件系统的历史
2.4.2 分布式文件系统的体系结构
2.4.3 谷歌文件系统(GoogleFS)
2.4.4 Hadoop分布式文件系统(HDFS)
2.5 小结
2.6 习题
第3章 数据预处理
3.1 数据预处理的必要性
3.2 数据清理
3.2.1 缺失数据处理方法
3.2.2 噪声数据平滑技术
3.2.3 时间相关数据的处理
3.3 数据集成
3.3.1 实体识别与匹配
3.3.2 冗余和相关分析
3.3.3 元组重复数据的检测
3.3.4 冲突数据的检测与处理
3.4 数据转换
3.4.1 数据标准化
3.4.2 数据泛化
3.5 数据归约
3.5.1 数据立方体聚集
3.5.2 维度归约
3.5.3 数据压缩
3.5.4 数值归约
3.6 数据离散化
3.6.1 分箱方法
3.6.2 直方图分析
3.6.3 基于熵的离散化
3.6.4 ChiMerge技术
3.6.5 人工划分分段
3.7 特征提取、选择和构造
3.7.1 特征提取
3.7.2 特征选择
3.7.3 特征构造
3.8 小结
3.9 习题
第4章 数据相似度与异常检测
4.1 相似度度量
4.1.1 对象与属性类型
4.1.2 相似度度量的定义
4.1.3 由距离度量变换而来的相似度度量
4.1.4 属性之间的相似度度量
4.1.5 对象之间的相似度度量
4.2 传统度量方法
4.2.1 二值属性的相似度度量
4.2.2 欧氏距离
4.2.3 余弦距离
4.2.4 Mahalanobis距离
4.2.5 Jaccard距离
4.2.6 海明距离
4.3 大数据度量方法
4.3.1 文档的Shingling
4.3.2 局部敏感散列算法
4.4 异常检测
4.4.1 基于统计的检测方法
4.4.2 基于距离的检测方法
4.4.3 基于密度的检测方法
4.4.4 基于聚类的检测方法
4.4.5 基于分类的检测方法
4.4.6 高维数据中的异常点检测
4.5 小结
4.6 习题
第5章 数据分类和预测
5.1 分类和预测的基本概念
5.1.1 准备数据
5.1.2 分类和预测方法的评估标准
5.2 决策树分类
5.2.1 ID3算法生成决策树
5.2.2 C4.5 算法生成决策树
5.2.3 CART算法和Gini指标
5.2.4 决策树归纳的可扩展性
5.2.5 数据仓库与决策树
5.2.6 决策树和决策规则的局限性
5.3 贝叶斯分类
5.3.1 贝叶斯定理
5.3.2 朴素贝叶斯分类
5.3.3 贝叶斯信念网络
5.3.4 训练贝叶斯信念网络
5.4 神经网络
5.4.1 多层前馈神经网络
5.4.2 定义神经网络的拓扑结构
5.4.3 后向传播
5.4.4 后向传播和可理解性
5.5 其他分类方法
5.5.1 基于关联的分类方法
5.5.2 K-最近邻分类
5.5.3 基于案例推理
5.5.4 遗传算法
5.5.5 粗糙集方法
5.5.6 模糊集合方法
5.6 预测算法
5.6.1 预测算法分类
5.6.2 预测算法选择
5.6.3 线性和多元回归
5.6.4 非线性回归
5.6.5 其他回归模型
5.7 分类预测应用实例
5.7.1 样本选取
5.7.2 建立预测模型
5.7.3 模型评估
5.7.4 实用价值
5.8 小结
5.9 习题
第6章 数据聚类分析
6.1 基本概念
6.1.1 对聚类分析的要求
6.1.2 聚类分析方法分类
6.2 划分聚类算法
6.2.1 K-means算法(基于质心的技术)
6.2.2 K-medoids算法(基于代表对象的技术)
6.3 层次聚类算法
6.3.1 BIRCH算法
6.3.2 CURE算法
6.3.3 ROCK算法
6.3.4 Chameleon算法
6.4 基于密度的聚类算法
6.4.1 DBSCAN算法
6.4.2 OPTICS算法
6.4.3 DENCLUE算法
6.5 基于网格的聚类算法
6.5.1 STING算法
6.5.2 WaveCluster算法
6.5.3 CLIQUE算法
6.6 基于模型的聚类算法
6.6.1 EM算法
6.6.2 COBWEB算法
6.6.3 SOM算法
6.7 聚类评估
6.7.1 估计聚类趋势
6.7.2 确定簇数
6.7.3 测定聚类质量
6.8 聚类分析应用实例
6.8.1 问题理解与提出
6.8.2 数据收集与选择
6.8.3 数据预处理
6.8.4 应用K-means聚类算法建模
6.9 小结
6.10 习题
第7章 数据关联分析
7.1 数据关联分析的基本概念
7.2 频繁项集产生
7.2.1 先验原理
7.2.2 Apriori算法的频繁项集产生
7.2.3 支持度计数
7.2.4 计算复杂度
7.3 规则产生
7.3.1 基本步骤
7.3.2 Apriori算法中规则的产生
7.4 频繁项集的紧凑表示
7.4.1 最大频繁项集
7.4.2 闭频繁项集
7.5 产生频繁项集的其他方法
7.5.1 项集格遍历
7.5.2 事务数据集的表示
7.6 FP-Growth算法
7.6.1 FP树构造
7.6.2 频繁项集产生
7.7 关联评估
7.7.1 兴趣度客观度量
7.7.2 多个二元变量的度量
7.7.3 倾斜支持度分布的影响
7.8 关联分析应用实例
7.8.1 关联分析学生成绩
7.8.2 数据处理
7.8.3 算法的应用
7.8.4 挖掘结果的分析
7.9 小结
7.10 习题
第8章 性能评估和提升
8.1 评分函数
8.1.1 预测性评分函数
8.1.2 描述性评分函数
8.1.3 一致性评价
8.2 成本评价
8.2.1 成本评价曲线
8.2.2 Cost-Sensitive学习
8.3 复杂度评估
8.4 验证
8.4.1 交叉验证
8.4.2 Bootstrap
8.4.3 模型比较
8.5 性能提升
8.5.1 效率提升
8.5.2 准确率提升
8.6 小结
8.7 习题
第9章 复杂数据挖掘
9.1 文本数据挖掘
9.1.1 文本数据预处理
9.1.2 文本数据挖掘技术
9.1.3 文本数据挖掘的应用
9.2 图像数据挖掘
9.2.1 图像数据的特点和挖掘技术现状
9.2.2 图像数据预处理
9.2.3 图像数据挖掘技术
9.2.4 图像数据挖掘的应用
9.3 语音识别挖掘
9.3.1 语音数据特点及挖掘技术现状
9.3.2 语音信号预处理
9.3.3 语音识别技术
9.3.4 语音识别技术的应用
9.4 视频数据挖掘
9.4.1 视频数据特点及挖掘技术现状
9.4.2 视频数据预处理
9.4.3 视频数据挖掘技术
9.4.4 视频数据挖掘的应用
9.5 网络拓扑挖掘
9.5.1 拓扑发现的技术现状及网络数据的采集
9.5.2 基于挖掘技术的网络拓扑发现
9.6 网络舆情挖掘
9.6.1 舆情研究发展现状及舆情特点
9.6.2 网络舆情数据预处理
9.6.3 网络舆情挖掘技术
9.7 推荐系统
9.7.1 推荐系统发展现状
9.7.2 相关技术
9.7.3 推荐系统
9.8 空间数据挖掘
9.8.1 空间数据的特点
9.8.2 空间数据预处理
9.8.3 空间数据挖掘技术
9.8.4 空间数据挖掘工具
9.9 数据流挖掘
9.9.1 数据流的特点
9.9.2 数据流预处理
9.9.3 数据流挖掘技术
9.9.4 数据流挖掘技术的应用
9.10 小结
9.11 习题
参考文献