发表于2024-11-22
在本书中,你将深入许多数据挖掘中常被忽视的领域,包括关联规则挖掘、实体匹配、网络挖掘、情绪分析、命名实体识别、文本摘要、主题建模和异常检测。对于每种数据挖掘技术,我们将在比较解决每种问题所用的各种策略之前,研究目前新的佳实践。然后,将用来自软件工程领域的实际数据,实现示例解决方案,并学习理解和解读所得结果的方法。
译者序
关于审稿人
前言
第1章 扩展你的数据挖掘工具箱1
1.1 什么是数据挖掘2
1.2 如何进行数据挖掘4
1.2.1 Fayyad等人的KDD过程4
1.2.2 韩家炜等人的KDD过程4
1.2.3 CRISP-DM过程5
1.2.4 六步过程6
1.2.5 哪一种数据挖掘方法最好6
1.3 在数据挖掘中使用哪些技术7
1.4 如何建立数据挖掘工作环境9
1.5 小结14
第2章 关联规则挖掘16
2.1 什么是频繁项集16
2.1.1 都市传奇“尿布与啤酒”17
2.1.2 频繁项集挖掘基础知识18
2.2 迈向关联规则19
2.2.1 支持度20
2.2.2 置信度20
2.2.3 关联规则21
2.2.4 包含数据的示例21
2.2.5 附加值—修复计划中的漏洞22
2.2.6 寻找频繁项集的方法24
2.3 项目—发现软件项目标签中的关联规则25
2.4 小结38
第3章 实体匹配39
3.1 什么是实体匹配40
3.1.1 数据合并42
3.1.2 匹配技术45
3.1.3 基于属性的相似度匹配45
3.1.4 属性匹配方法46
3.1.5 利用不相交数据集48
3.1.6 基于上下文的相似度匹配48
3.1.7 基于机器学习的实体匹配49
3.1.8 实体匹配技术的评估50
3.2 实体匹配项目53
3.2.1 软件项目匹配的难度53
3.2.2 两个例子53
3.2.3 根据项目名称匹配55
3.2.4 根据人名匹配55
3.2.5 根据URL匹配55
3.2.6 按照主题和描述关键词匹配56
3.2.7 数据集57
3.2.8 代码58
3.2.9 结果63
3.3 小结66
第4章 网络分析68
4.1 什么是网络68
4.2 网络计量71
4.2.1 网络的度数71
4.2.2 网络直径72
4.2.3 网络中的通路、路径和迹72
4.2.4 网络的成分73
4.2.5 图的中心性73
4.3 图数据的表示76
4.3.1 邻接矩阵76
4.3.2 边表和邻接表77
4.3.3 图数据结构之间的差别77
4.3.4 将数据导入图结构中78
4.4 真实项目84
4.4.1 探索数据84
4.4.2 生成网络文件89
4.4.3 以网络的形式理解数据91
4.5 小结107
第5章 文本情绪分析109
5.1 什么是情绪分析110
5.2 情绪分析基础知识111
5.2.1 观点的结构111
5.2.2 文档级和句子级分析112
5.2.3 观点的重要特征113
5.3 情绪分析算法114
5.4 情绪挖掘应用116
5.4.1 项目动机117
5.4.2 数据准备117
5.4.3 聊天消息的数据分析120
5.4.4 电子邮件消息的数据分析124
5.5 小结130
第6章 文本中的命名实体识别131
6.1 为什么寻找命名实体?131
6.2 命名实体识别技术134
6.3 NER系统的构建与评估137
6.3.1 NER和部分匹配137
6.3.2 处理部分匹配138
6.4 命名实体识别项目140
6.5 小结149
第7章 自动化文本摘要150
7.1 什么是自动化文本摘要151
7.2 文本摘要工具151
7.2.1 使用NTLK的简单文本摘要152
7.2.2 使用Gensim的文本摘要155
7.2.3 使用Sumy的文本摘要157
7.3 小结163
第8章 文本中的主题建模164
8.1 什么是主题建模164
8.2 潜在狄利克雷分配166
8.3 Gensim主题建模167
8.3.1 理解Gensim LDA主题169
8.3.2 理解Gensim LDA的遍数170
8.3.3 对新文档应用Gensim LDA模型172
8.3.4 序列化Gensim LDA对象172
8.4 用于更大项目的Gensim LDA174
8.5 小结176
第9章 挖掘数据异常178
9.1 什么是数据异常178
9.1.1 缺失数据179
9.1.2 修复缺失数据181
9.1.3 数据错误184
9.1.4 离群值186
9.2 小结194
Preface前言过去十年,数据存储变得更便宜,硬件变得更快,算法上也有了引人注目的进步,这一切为数据科学的快速兴起铺平了道路,并推动其发展成为计算领域最重要的机遇。虽然“数据科学”一词可以包含从数据清理、数据存储到用图形图表可视化数据的所有环节,但该领域最重要的收获是发明了智能、精密的数据分析算法。使用计算机寻找大量数据中埋藏的有趣模式称为数据挖掘,这一领域包含了数据库系统、统计学和机器学习等课题。
现在,软件开发人员可以找到数十种出色的数据挖掘和机器学习书籍,从而了解这一领域的所有最新进展。大部分这类书籍都有一个共同点,即它们都涵盖了寻找数据中模式的少数经过检验的方法:分类、聚类、决策树和回归。当然,这些方法对于任何数据挖掘人员都是非常重要的,它们的流行正是因为其有效性。但是,这几种技术并不是全部。数据挖掘是一个丰富多彩的领域,包括数十种发现模式并做出预测的技术。真正的数据挖掘大师应该在工具箱中放入许多工具,而不只是少数几种。因此,本书的使命是介绍一些通常仅在学校课本中出现的、鲜为人知的数据挖掘概念。
本书使用Python编程语言和基于项目的方法介绍多种常被忽视的数据挖掘概念,如关联规则、实体匹配、网络分析、文本挖掘和异常检测等。每章都全面阐述某种特定数据挖掘技术的基础知识,提供替代方案以评估其有效性,然后用真实的数据实现该技术。
专注于实际数据是本书不同于其他数据挖掘书籍的一个特征。为了验证我们是否掌握了某个概念,判断方法是看我们能否将某种方法应用于新的未知问题。对我们来说,这意味着将每种数据挖掘方法应用到一个新的问题领域或者新的数据集。强调真实数据还意味着,我们的结果可能不总像预先制作的示例数据集那样清晰。因此,每一章都包含对如何精密地评估方法的讨论。得到的结果是否有意义?结果意味着什么?如何改善这些结果?所以,在许多方面,本书包含了其他一些数据挖掘书籍遗漏的知识。如果你想用一组有趣但常被忽视的技术补充日益增长的数据挖掘工具箱,那么学习我们介绍的特定主题,以及在每个章节中的应用方法。
本书主要内容第1章简单介绍数据挖掘领域,在该章中,我们特别注意数据挖掘与类似主题(如机器学习和数据科学)的关系。还回顾了许多不同的数据挖掘方法,讨论它们的各种优点和缺点。这些基础知识对我们过渡到本书的其他章节很重要,后续的章节更偏重技术,专注于特定数据挖掘工具的应用。
第2章介绍我们的第一个数据挖掘工具:挖掘一组同时出现的项目,这有时候被称为频繁项集。这里扩展了对频繁项集挖掘的理解,包含关联规则的挖掘,并且学习如何评估所找到的规则是否有益。为了将知识用于实践,在该章的最后我们实施了一个小项目,寻找选择用来描述大量软件项目的关键词中的关联规则。
第3章的重点是找出看上去稍有不同但实际上相同的匹配数据元素对。学习如何通过使用数据属性,确定两个项目是否实际上是同一回事。在该章的最后,我们实施一个实体匹配项目,寻找从一个托管服务转移到另一个托管服务中的软件项目,即使该项目的名称和其他重要属性已经改变。
第4章是网络或者图形分析的教程,这两种分析用于描述各种相互联系的实体组之间的关系。我们研究各种类型的网络,学习描述和计量它们的方法。然后,将学习到的知识投入实践,描述一个软件开发人员网络是如何随时间而变化的。
第5章是本书4个文本挖掘章节中的第一个。该章简单介绍了发展中的文本情绪分析领域。比较情绪挖掘的各种方法并学习结果的评估手段之后,我们实践使用机器学习分类器来确定一组软件开发人员聊天记录和电子邮件记录中的情绪。
第6章是关于寻找文本中合适名词和名称的。我们花费一些时间,学习这一任务的用途,了解为什么寻找命名实体有时候比看上去更加困难。在该章的最后,我们在各种不同类型的实际文本(包括电子邮件、聊天记录和董事会会议纪要)上实现了一个命名实体识别系统。在实现过程中,我们应用了不同的技术以量化结果的成败。
第7章介绍多种自动创建浓缩的文本摘要的策略。该章强调摘要提取工具,这种工具用来找出文本样本中最重要的句子。为此,我们试验了3种实现这一目标的不同工具,测试摘要方法并了解它们之间的差异。在介绍了每种工具之后,我们尝试提取同一组文本文档的摘要,并对比结果。
第8章说明如何使用软件工具揭示给定文本中存在的主题或者概念。我们可以训练一个计算机程序,推断大量文本中存在的主题吗?在一系列试验中,我们学习使用常见的主题建模库揭示软件开发人员电子邮件中存在的主题,以及这些主题如何随时间推移而变化。
第9章中我们学习如何使用数据挖掘和统计技术改善自己的数据挖掘过程。虽然本书的其他章节都在寻找数据中不同类型的模式,但该章将重点放在寻找异常或者不匹配特定模式的数据。不管这是因为数据是空白、遗漏还是怪异的,本章都提供了寻找或者修复这类数据并使剩余数据可以被更有效挖掘的策略。
阅读准备为了完成本书中的项目,你需要Python3.5或者更高版本。我建议使用AnacondaPython,但是只要包含如下程序包,任何Python分发版本都是可行的:Numpy、MatPlotlib、NetworkX、PyMySQL、Gensim和NTLK。第1章会简单介绍Python的安装和以上程序库,此后,每次使用一个程序库,我们将同时安装或者升级它。
因为数据挖掘明显是以数据为中心的,而且我们使用的数据集有时候很大,需要某种持久化数据存储,所以本书选择在一个关系数据库系统上实现一些数据挖掘算法。我们选择MySQL实现这一目标,因为这是一个成熟、容易下载和安装的基础设施。第2章和第3章都使用MySQL与内存密集型算法搭配。同时,本书还在第9章中的某些例子里使用了MySQL,但是没有MySQL也可以完成该章的学习。
读者人群如果你为了精通数据挖掘而选择书籍,那么可能已经熟悉了数据分析的基础知识,可能试验过回归、决策树、分类和聚类分析等机器学习技术;如果你有一定的Python经验,理解基本的关系数据库术语,对统计学基础有所了解,能够理解有监督与无监督机器学习技术的基本工作原理,那么就已经为本书的阅读做好了准备。让我们从你已有的知识入手,学习更加不同寻常的数据挖掘策略吧!
本书约定在本书中,你将发现许多区分不同信息的文本格式。下面是这些格式的一些例子及对其意义的解释。
下面是一个代码块的示例:
任何命令输入或者输出使用如下格式:
表示警告或者重要说明。
表示提示和技巧。
下载示例代码你可以在www.packtpub.com上用自己的账户下载示例代码文件。如果在其他地方购买本书,可以访问www.packtpub.com/support注册,这些文件将直接用电子邮件发送给你。
你也可以访问华章图书官网www.hzbook.com,通过注册并登录个人账号,下载本书的源代码。
TheTranslatorsWords译者序互联网的蓬勃发展引领我们进入一个数据超载的时代,电子商务和社交媒体的兴起使网络成为一个数据宝库。我们现在已经有足够的存储空间和处理能力,去应对以TB甚至PB计算的海量数据。
但是,数据并不是我们的目的,只有将其转化为对行动有指导意义的信息,才能真正体现其价值。在人们的不断摸索中,数据挖掘技术逐步成熟,成为大数据时代最炙手可热的领域之一。数据分析的重要性已无须多言,许多分析人员已经熟悉了经典的分析手段,如回归、聚类等,但这些方法并不能应对数据挖掘的所有问题,想要精通数据挖掘技术,就必须有更多的“法宝”,而这正是本书的目的。
本书的目标是向具有一定基础的数据分析人员介绍实践中最为常见而在一般数据挖掘书籍中又难以见到的技术与概念,用真实项目、在通用编程环境Python中介绍数据挖掘方法。对于每种方法,书中不仅有对概念的详细解说,还有程序实例、替代方法以及每种方法效能的评估技术,真正帮助读者“知其然,知其所以然”,从而迈向数据挖掘专家的道路。
在本书的翻译过程中,我们不仅见识了数据挖掘领域的博大精深,感叹于现代数据分析技术的快速发展,而且在浅显易懂的真实项目引导下,利用许多研究人员精心打造的“神器”,轻松地得到以前难以企及的结果。可以想象,认真阅读本书,读者在增长知识的同时,也将对精通数据挖掘充满信心,可能将其作为未来的一个工作方向。
本书的翻译工作主要由姚军完成,方翊、白龙、林耀成、陈霞、宁懿、谢志雄、陈志勇等也为翻译工作做出了贡献。由于译者水平所限,错误在所难免,请广大读者批评指教。
Python数据挖掘:概念、方法与实践 下载 mobi pdf epub txt 电子书 格式 2024
Python数据挖掘:概念、方法与实践 下载 mobi epub pdf 电子书好呢好
评分纸质不错,内容介绍也挺全面,方法不仅适用于游戏数据分析,其它行业的也可借鉴,值得一读
评分棒棒哒!正好是我用的sublimetext3感觉挺不错的!特别适合新手
评分非常实用非常实用非常实用非常实用非常实用非常实用非常实用非常实用
评分这个系列的书看着就很有逼格
评分必须好评,也在学天善学院标哥的课程,标哥的书一直在追,这本终于出来了!
评分据说得超过十个字才给豆啊啊啊啊,还没看
评分据说得超过十个字才给豆啊啊啊啊,还没看
评分好呢好
Python数据挖掘:概念、方法与实践 mobi epub pdf txt 电子书 格式下载 2024