前言

前言

在本书第2版的写作过程中,我时刻以程序员的需要为出发点。本书面向程序员群体,致力于向广大程序员介绍数据挖掘技术。我认为,数据挖掘技术对于计算机科学领域的所有从业人士来说都不可或缺,因为它正迅速成为下一代人工智能系统的基石。你即便不亲自构建人工智能系统,也会使用它们、与它们产生联系、接受它们的指引。人工智能系统的幕后过程是重中之重,理解该过程有助于你发挥这些系统的最大效用。

由于第2版在第1版的基础上编写,因而许多章节和练习与第1版中类似,但是第2版中引入了一些新的概念,扩大了练习所涉及的范围。第1版的读者应该能迅速读完本书,轻松掌握新的知识,然后参加本书建议的额外活动。而新读者则可以多花一些时间,解答习题并动手实验。你可以随意拆解本书中的代码以加深理解。如有疑问,可以联系我寻求帮助。

由于本书是面向程序员群体的,因此我假定你已经掌握了关于编程与Python的知识。有鉴于此,除非Python代码的意义不明确,否则本书将不会详细解释其工作机制。

本书内容

第1章,数据挖掘入门,介绍本书中将会用到的技术,并从实现两个基础算法入手。

第2章,用scikit-learn估计器解决分类问题,介绍一种重要的数据挖掘形式——分类。此外,你还可以了解一些数据结构,这有助于你顺利完成数据挖掘实验。

第3章,用决策树预测获胜球队,介绍决策树和随机森林这两个新算法,然后创建有用的特征,并将其交由算法来预测获胜的球队。

第4章,用亲和性分析推荐电影,着眼于根据既往经验推荐产品的问题,并介绍Apriori算法。

第5章,特征与scikit-learn转换器,介绍更多类型的特征,以及如何处理不同的数据集。

第6章,用朴素贝叶斯算法探索社交媒体,利用朴素贝叶斯算法在社交媒体网站Twitter上自动解析文本信息。

第7章,用图挖掘实现推荐关注,应用聚类分析和网络分析的方法,在社交媒体中找出适合关注的人。

第8章,用神经网络识别验证码,介绍如何提取图像中的信息,用以训练神经网络,使其能从图像中识别单词和字母。

第9章,作者归属问题,抽取文本特征,然后用支持向量机(support vector machine,SVM)判断文档的作者。

第10章,聚类新闻文章,用k-均值(k-{\rm means})聚类算法,根据内容对新闻文章分组。

第11章,用深度神经网络实现图像中的对象检测,应用深度神经网络,判定图像中显示对象的类型。

第12章,大数据处理,关注在大数据场景中应用数据挖掘算法的工作流,以及如何从中获取有用的见解。

附录A,下一步工作,回顾之前的每一章,并提供扩展学习资源,帮助读者加深对前述概念的理解。

阅读前提

毋庸置疑,你需要有一台计算机,或者至少能接触到一台计算机,才能完成对本书内容的学习。计算机的配置要比较新,但也不必过高,只要配备任意一款现代处理器(大概产于2010年以后)和4 GB内存就可以了。即便是在性能差一些的系统上,也几乎可以运行本书中的全部代码。

但最后两章是例外。在这两章中,我用AWS(Amazon Web Services)运行代码。这很可能会产生一些花费,不过比起在本地运行代码,少了一些配置系统的工作。如果你不想使用付费的AWS,本书用到的工具也可以在本地计算机上安装,不过这样,对计算机的配置要求会较高:它必须具备2012年以后出厂的处理器和4 GB以上的内存。

我推荐使用Ubuntu操作系统。尽管本书中的代码在Windows、Mac和其他Linux发行版中均可正常运行,但是如果你使用Ubuntu以外的操作系统,可能需要在配置或安装依赖时查阅相关文档。

本书使用pip来安装代码,它是安装Python库的命令行工具。另一个选项是Anaconda,你可以登录http://continuum.io点击Download下载它。

我在Python 3中测试过本书中的全部代码,多数示例代码无须修改即可在Python 2中运行。如遇到无法自行处理的问题,可以通过邮件联系我解决。

读者对象

本书是数据挖掘的入门读物,写给注重从应用上手的程序员。

如果你从未涉足编程,我强烈建议你在阅读本书之前至少了解一下编程的基础知识。本书不会介绍编程技巧,也不会花太多篇幅论述代码实现细节。这就是说,虽然你无须成为编程专家,但需要具备编程的基础知识才能顺畅地阅读本书。

我强烈建议你在阅读前积累一些Python编程经验。如果没有也没关系,请尽管阅读,只不过你需要先熟悉一下Python代码,比如看看用Jupyter Notebook编写的教程。在Jupyter Notebook中编写代码会与其他方式(比如在成熟且功能完备的IDE中编写Java程序)有些不同。

排版约定

你会在本书中发现一些不同的文本样式,它们区分了不同类型的内容。下面的示例解释了不同样式的意义。

文本中的代码、数据库表名、文件夹名、文件名、文件扩展名、路径名、用户输入和Twitter手柄均以如下形式呈现:“下一行代码读取链接,并传给dataset_filename()函数。”

代码块的样式如下。

import numpy as np
dataset_filename = "affinity_dataset.txt"
X = np.loadtxt(dataset_filename)

命令行输入和输出的样式如下。

$ conda install scikit-learn

新术语重要词汇会以黑体字标明。而在屏幕上显示的词语(比如菜单和对话框中的词语)会采用这样的样式:“为了下载新模块,请点击文件|设置|项目名称|项目解释器。”

 此图标表示警告和重要注解。

 

 此图标表示提示与技巧。

读者反馈

我们非常乐于接受读者的反馈。请告诉我们,你觉得本书如何,喜欢或不喜欢哪些内容。我们重视读者的反馈,这有助于我们写出真正对大家有帮助的图书。

一般的反馈可以直接发邮件到feedback@packtpub.com,记得在邮件主题中注明书名。

如果你专精于某个主题,并且有兴趣撰写图书或供稿,请参看我们的作者指南:https://www.packtpub.com/authors

客户支持

请为拥有一本Packt出版的书而骄傲吧!我们的许多服务会让你觉得物有所值。

下载示例代码

你可以在http://www.packtpub.com登录账号,下载本书的示例代码。如果你是从别处购买本书的,那么请在http://www.packtpub.com/support注册,我们会通过电子邮件把示例代码文件发送给你。

下载示例代码文件的步骤如下:

(1) 访问我们的网站,用邮箱和密码登录或注册账号;

(2) 把鼠标指针放置在顶部的SUPPORT标签上;

(3) 点击Code Downloads & Errata

(4) 在Search框中输入本书名称;

(5) 选择本书以下载示例代码文件;

(6) 在下拉菜单中选择本书的购买途径;

(7) 点击Code Download

文件下载完成之后,请确保用最新版本的解压工具来解压缩,解压工具如下。

  • Windows:WinRAR / 7-Zip
  • Mac:Zipeg / iZip / UnRarX
  • Linux:7-Zip / PeaZip

本书的代码包也托管在GitHub上:https://github.com/PacktPublishing/Learning-Data-Mining-with-Python-Second-Edition

GitHub仓库的好处是可以记录下任何与代码相关的问题(包括软件版本变化带来的问题),还可以让全世界的读者参与代码的修改工作。我们的许多其他图书和视频的代码包也托管在了GitHub上,欢迎访问:https://github.com/PacktPublishing/

为了避免缩进出现问题,不要直接从PDF复制代码,请运行代码包中的文件。

勘误

尽管我们全力确保内容准确无误,但出错在所难免。如果你能把书中的错误反馈给我们,哪怕只是文字或代码上的错误,我们都将感激不尽。如此义举不仅能使其他读者受益,也能帮助我们在本书的后续版本中改正错误。如果你发现任何错误,请访问http://www.packtpub.com/submit-errata反馈给我们,只需选择书名,并点击Errata Submission Form链接,然后输入勘误建议。1你提交的勘误建议通过验证后将被采纳,然后会被上传到我们的网站,或添加到现有勘误表中。

1本书中文版勘误请到http://www.ituring.com.cn/book/2652查看和提交,本书彩色图片也请到该网址查看和下载。——编者注

要查阅之前提交的勘误,请访问https://www.packtpub.com/books/content/support,然后在搜索栏中输入书名,之后在Errata部分就可以找到勘误信息。

反盗版

现今,所有类型的媒体都面临互联网侵权问题。在Packt,版权和许可证受到严格保护。如果你在互联网上遇到任何形式的盗版Packt作品,请立即向我们提供地址或网站名称等线索,以帮助我们采取补救措施。

问题

如果你对本书有任何方面的问题,请发邮件到questions@packtpub.com,我们会尽全力解决。

电子书

扫描如下二维码,即可购买本书电子版。

{%}

目录

  • 版权声明
  • 译者序
  • 前言
  • 致谢
  • 第 1 章 数据挖掘入门
  • 第 2 章 用scikit-learn估计器解决分类问题
  • 第 3 章 用决策树预测获胜球队
  • 第 4 章 用亲和性分析推荐电影
  • 第 5 章 特征与scikit-learn转换器
  • 第 6 章 用朴素贝叶斯算法探索社交媒体
  • 第 7 章 用图挖掘实现推荐关注
  • 第 8 章 用神经网络识别验证码
  • 第 9 章 作者归属问题
  • 第 10 章 聚类新闻文章
  • 第 11 章 用深度神经网络实现图像中的对象检测
  • 第 12 章 大数据处理
  • 附录 A 下一步工作