前言
过去十年,数据存储变得更便宜,硬件变得更快,算法上也有了引人注目的进步,这一切为数据科学的快速兴起铺平了道路,并推动其发展成为计算领域最重要的机遇。虽然“数据科学”一词可以包含从数据清理、数据存储到用图形图表可视化数据的所有环节,但该领域最重要的收获是发明了智能、精密的数据分析算法。使用计算机寻找大量数据中埋藏的有趣模式称为数据挖掘,这一领域包含了数据库系统、统计学和机器学习等课题。
现在,软件开发人员可以找到数十种出色的数据挖掘和机器学习书籍,从而了解这一领域的所有最新进展。大部分这类书籍都有一个共同点,即它们都涵盖了寻找数据中模式的少数经过检验的方法:分类、聚类、决策树和回归。当然,这些方法对于任何数据挖掘人员都是非常重要的,它们的流行正是因为其有效性。但是,这几种技术并不是全部。数据挖掘是一个丰富多彩的领域,包括数十种发现模式并做出预测的技术。真正的数据挖掘大师应该在工具箱中放入许多工具,而不只是少数几种。因此,本书的使命是介绍一些通常仅在学校课本中出现的、鲜为人知的数据挖掘概念。
本书使用Python编程语言和基于项目的方法介绍多种常被忽视的数据挖掘概念,如关联规则、实体匹配、网络分析、文本挖掘和异常检测等。每章都全面阐述某种特定数据挖掘技术的基础知识,提供替代方案以评估其有效性,然后用真实的数据实现该技术。
专注于实际数据是本书不同于其他数据挖掘书籍的一个特征。为了验证我们是否掌握了某个概念,判断方法是看我们能否将某种方法应用于新的未知问题。对我们来说,这意味着将每种数据挖掘方法应用到一个新的问题领域或者新的数据集。强调真实数据还意味着,我们的结果可能不总像预先制作的示例数据集那样清晰。因此,每一章都包含对如何精密地评估方法的讨论。得到的结果是否有意义?结果意味着什么?如何改善这些结果?
所以,在许多方面,本书包含了其他一些数据挖掘书籍遗漏的知识。如果你想用一组有趣但常被忽视的技术补充日益增长的数据挖掘工具箱,那么学习我们介绍的特定主题,以及在每个章节中的应用方法。
本书主要内容
第1章简单介绍数据挖掘领域,在该章中,我们特别注意数据挖掘与类似主题(如机器学习和数据科学)的关系。还回顾了许多不同的数据挖掘方法,讨论它们的各种优点和缺点。这些基础知识对我们过渡到本书的其他章节很重要,后续的章节更偏重技术,专注于特定数据挖掘工具的应用。
第2章介绍我们的第一个数据挖掘工具:挖掘一组同时出现的项目,这有时候被称为频繁项集。这里扩展了对频繁项集挖掘的理解,包含关联规则的挖掘,并且学习如何评估所找到的规则是否有益。为了将知识用于实践,在该章的最后我们实施了一个小项目,寻找选择用来描述大量软件项目的关键词中的关联规则。
第3章的重点是找出看上去稍有不同但实际上相同的匹配数据元素对。学习如何通过使用数据属性,确定两个项目是否实际上是同一回事。在该章的最后,我们实施一个实体匹配项目,寻找从一个托管服务转移到另一个托管服务中的软件项目,即使该项目的名称和其他重要属性已经改变。
第4章是网络或者图形分析的教程,这两种分析用于描述各种相互联系的实体组之间的关系。我们研究各种类型的网络,学习描述和计量它们的方法。然后,将学习到的知识投入实践,描述一个软件开发人员网络是如何随时间而变化的。
第5章是本书4个文本挖掘章节中的第一个。该章简单介绍了发展中的文本情绪分析领域。比较情绪挖掘的各种方法并学习结果的评估手段之后,我们实践使用机器学习分类器来确定一组软件开发人员聊天记录和电子邮件记录中的情绪。
第6章是关于寻找文本中合适名词和名称的。我们花费一些时间,学习这一任务的用途,了解为什么寻找命名实体有时候比看上去更加困难。在该章的最后,我们在各种不同类型的实际文本(包括电子邮件、聊天记录和董事会会议纪要)上实现了一个命名实体识别系统。在实现过程中,我们应用了不同的技术以量化结果的成败。
第7章介绍多种自动创建浓缩的文本摘要的策略。该章强调摘要提取工具,这种工具用来找出文本样本中最重要的句子。为此,我们试验了3种实现这一目标的不同工具,测试摘要方法并了解它们之间的差异。在介绍了每种工具之后,我们尝试提取同一组文本文档的摘要,并对比结果。
第8章说明如何使用软件工具揭示给定文本中存在的主题或者概念。我们可以训练一个计算机程序,推断大量文本中存在的主题吗?在一系列试验中,我们学习使用常见的主题建模库揭示软件开发人员电子邮件中存在的主题,以及这些主题如何随时间推移而变化。
第9章中我们学习如何使用数据挖掘和统计技术改善自己的数据挖掘过程。虽然本书的其他章节都在寻找数据中不同类型的模式,但该章将重点放在寻找异常或者不匹配特定模式的数据。不管这是因为数据是空白、遗漏还是怪异的,本章都提供了寻找或者修复这类数据并使剩余数据可以被更有效挖掘的策略。
阅读准备
为了完成本书中的项目,你需要Python 3.5或者更高版本。我建议使用Anaconda Python,但是只要包含如下程序包,任何Python分发版本都是可行的:Numpy、MatPlotlib、NetworkX、PyMySQL、Gensim和NTLK。第1章会简单介绍Python的安装和以上程序库,此后,每次使用一个程序库,我们将同时安装或者升级它。
因为数据挖掘明显是以数据为中心的,而且我们使用的数据集有时候很大,需要某种持久化数据存储,所以本书选择在一个关系数据库系统上实现一些数据挖掘算法。我们选择MySQL实现这一目标,因为这是一个成熟、容易下载和安装的基础设施。第2章和第3章都使用MySQL与内存密集型算法搭配。同时,本书还在第9章中的某些例子里使用了MySQL,但是没有MySQL也可以完成该章的学习。
读者人群
如果你为了精通数据挖掘而选择书籍,那么可能已经熟悉了数据分析的基础知识,可能试验过回归、决策树、分类和聚类分析等机器学习技术;如果你有一定的Python经验,理解基本的关系数据库术语,对统计学基础有所了解,能够理解有监督与无监督机器学习技术的基本工作原理,那么就已经为本书的阅读做好了准备。让我们从你已有的知识入手,学习更加不同寻常的数据挖掘策略吧!
本文出版自《华章出版社》 作者:[美] 梅甘·斯夸尔(Megan Squire)
-------------------------
谢谢楼主分享
-------------------------
谢谢楼主分享
-------------------------
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。