前言

前言

目前,从医疗诊断和治疗到在社交网络上寻找好友,许多商业应用和研究项目都离不开机器学习。许多人以为,只有大公司的大型研究团队才能用到机器学习。在本书中,我们要向你展示,自己动手构建机器学习解决方案是多么容易的一件事,也将介绍如何将这件事做到最好。学完本书中的知识,你可以自己构建系统,研究 Twitter 用户的情感,或者对全球变暖做出预测。机器学习的应用十分广泛,如今的海量数据使得其应用范围更是远超人们的想象。

目标读者

本书是为机器学习从业者或有志成为机器学习从业者的人准备的,他们在为现实生活中的机器学习问题寻找解决方案。这是一本入门书,不需要读者具备机器学习或人工智能(artificial intelligence,AI)的相关知识。我们主要使用 Python 和 scikit-learn 库,一步一步构建一个有效的机器学习应用。我们介绍的方法适用于科学家和研究人员,也会对开发商业应用的数据科学家有所帮助。如果你对 Python 以及 NumPy 和 matplotlib 库有所了解的话,将能够更好地掌握本书的内容。

我们刻意不将数学作为重点,而是将机器学习算法的实践作为重点。数学(尤其是概率论)是机器学习算法的基石,所以我们不会详细分析算法的细节。如果你对机器学习算法的数学部分感兴趣,我们推荐阅读 Trevor Hastie、Robert Tibshirani 和 Jerome Friedman 合著的《统计学习基础》(Elements of Statistical Learning,Springer 出版社)一书,可以在几位作者的网站上免费阅读这本书(http://statweb.stanford.edu/~tibs/ElemStatLearn/)。我们也不会从头讲解如何编写机器学习算法,而是将重点放在如何应用 scikit-learn 库和其他库中已经实现的海量模型。

写作本书的原因

市面上已经有许多关于机器学习和 AI 的书了,但这些书都是为计算机科学专业的研究生或博士生准备的,里面全都是高等数学的内容。与之形成鲜明对比的是,在研究领域和商业应用中,机器学习是作为一般工具使用的。如今,使用机器学习并不需要拥有博士学位。然而,能够完全涵盖在实践中实现机器学习算法的所有重要内容,而又不需要先修高等数学课程,这样的学习资源少之又少。对于那些想要使用机器学习算法而又不想花费大量时间研读微积分、线性代数和概率论的人来说,我们希望本书能够有所帮助。

本书概览

本书的结构大致如下。

  • 第 1 章介绍机器学习的基本概念及其应用,并给出本书会用到的基本设置。

  • 第 2 章和第 3 章介绍实践中最常用的机器学习算法,并讨论这些算法的优缺点。

  • 第 4 章介绍在机器学习中待处理数据的呈现方式的重要性,以及应重点关注数据的哪些方面。

  • 第 5 章介绍模型评估和调参的高级方法,重点讲解交叉验证和网格搜索。

  • 第 6 章解释管道的概念。管道用于串联多个模型并封装工作流。

  • 第 7 章介绍如何将前面各章讲述的方法应用到文本数据上,还介绍了一些文本特有的处理方法。

  • 第 8 章对全书进行总结,还介绍了有关更高级主题的参考资料。

虽然第 2 章和第 3 章给出了实际算法,但对于初学者来说,并不需要理解所有这些算法。如果你想要尽快构建一个机器学习系统,我们建议你首先阅读第 1 章和第 2 章的开始部分,里面介绍了所有的核心概念。然后你可以翻到 2.5 节,里面提到了我们介绍的所有监督学习模型。从中选择最适合你需求的模型,然后翻回到对应小节阅读其详细内容。之后你可以使用第 5 章中的方法对你的模型进行评估和调参。

在线资源

在学习本书时,一定要参考 scikit-learn 官方网站(http://scikit-learn.org),查阅关于类和函数的更详细的文档,以及很多示例。此外,Andreas Müller 创建的视频课程“scikit-learn 高等机器学习”(Advanced Machine Learning with scikit-learn)可以作为本书的补充材料。你可以在 http://shop.oreilly.com/product/0636920043836.do 观看该课程。

排版约定

本书使用了下列排版约定。

  • 黑体

    表示新术语或重点强调的内容。

  • 等宽字体(constant width

    表示程序片段,以及正文中出现的变量、函数名、数据库、数据类型、环境变量、语句和关键字等。也用于表示命令、模块和包的名称。

  • 加粗等宽字体(constant width bold

    表示需要用户逐字输入的命令或其他文本。

  • 等宽斜体(constant width italic

    表示应替换成用户输入的值,或替换成根据上下文确定的值。

 该图标表示提示或建议。

 

 该图标表示一般性说明。

 

 该图标表示警告或警示。

使用代码示例

补充材料(代码示例、IPython notebook 等)可以在 https://github.com/amueller/introduction_to_ml_with_python 下载。

本书是要帮你完成工作的。一般来说,如果本书提供了示例代码,你可以把它用在你的程序和文档中。除非你使用了很大一部分代码,否则无需联系我们获得许可。比如,用本书的几个代码片段写一个程序就无需获得许可。销售或分发 O'Reilly 图书的示例光盘则需要获得许可。引用本书中的示例代码来回答问题无需获得许可。将书中大量示例代码放到你的产品文档中则需要获得许可。

如果你在引用本书内容时注明出处,我们将不胜感激,但这并非强制要求。引用说明一般包括书名、作者、出版社和 ISBN。比如:“An Introduction to Machine Learning with Python by Andreas C. Müller and Sarah Guido (O'Reilly). Copyright 2017 Sarah Guido and Andreas Müller, 978-1-449-36941-5.”

如果你认为自己对代码示例的用法超出了合理使用的范围或上述许可的范围,敬请通过 permissions@oreilly.com 与我们联系。

Safari® Books Online

Safari Books Online 是应运而生的数字图书馆,它同时以图书和视频的形式出版世界顶级技术和商业作家的专业作品。

技术专家、软件开发人员、Web 设计师、商务人士和创意专家等,在开展调研、解决问题、学习和认证培训时,都将 Safari Books Online 视作获取资料的首选渠道。

对于企业、政府、教育机构和个人,Safari Books Online 都提供各种产品组合和灵活的定价策略。

用户可通过一个功能完备的数据库检索系统访问 O'Reilly Media、Prentice Hall Professional、Addison-Wesley Professional、Microsoft Press、Sams、Que、Peachpit Press、Focal Press、Cisco Press、John Wiley & Sons、Syngress、Morgan Kaufmann、IBM Redbooks、Packt、Adobe Press、FT Press、Apress、Manning、New Riders、McGraw-Hill、Jones & Bartlett、Course Technology 等数百家出版社的上千种图书、培训视频和正式出版之前的书稿。要了解 Safari Books Online 的更多信息,请访问我们的网站。

联系我们

请把对本书的评价和问题发给出版社。

美国:

  O'Reilly Media, Inc.

  1005 Gravenstein Highway North

  Sebastopol, CA 95472

中国:

  北京市西城区西直门南大街 2 号成铭大厦 C 座 807 室(100035)

  奥莱利技术咨询(北京)有限公司

我们为本书创建了一个网页,在上面列出了本书的勘误表、示例以及其他信息。本书的网站地址是:http://shop.oreilly.com/product/0636920030515.do

如果你想就本书发表评论或技术性问题,请发送电子邮件到 bookquestions@oreilly.com。

想了解更多 O'Reilly 图书、培训课程、会议和新闻的信息,请访问我们的网站:

  http://www.oreilly.com

我们在 Facebook 的地址如下:http://facebook.com/oreilly

请关注我们的 Twitter 动态:http://twitter.com/oreillymedia

我们的 YouTube 视频地址如下:http://www.youtube.com/oreillymedia

致谢

来自Andreas的致谢

如果没有许多人的帮助和支持,本书永远不会出版。

我要感谢本书编辑 Meghan Blanchette 和 Brian MacDonald,特别是 Dawn Schanafelt,感谢他们帮助我和 Sarah 共同完成这本书。

我要感谢我的审稿人 Thomas Caswell、Olivier Grisel、Stefan van der Walt 和 John Myles White,感谢他们花费时间阅读本书的早期版本,并提供宝贵的反馈意见。这些意见也成为了科学计算开源生态系统的基石。

我永远感谢热情的 Python 科学计算开源社区,特别要感谢 scikit-learn 的贡献者们。如果没有这个社区的支持和帮助,特别是 Gael Varoquaux、Alex Gramfort 和 Olivier Grisel 的支持和帮助,我永远无法成为 scikit-learn 的核心贡献者,也无法像现在这样对这个包有如此深刻的理解。我还要感谢 scikit-learn 的其他所有贡献者,他们花费了大量时间改进并维护这个包。

我还要感谢与我讨论的许多同事和同行。这些谈话帮助我理解了机器学习的挑战,并让我产生构思一本教科书的想法。我与许多人讨论过机器学习,但我要特别感谢其中的 Brian McFee、Daniela Huttenkoppen、Joel Nothman、Gilles Louppe、Hugo Bowne-Anderson、Sven Kreis、Alice Zheng、Kyunghyun Cho、Pablo Baberas 和 Dan Cervone。

我还要感谢 Rachel Rakov,她对本书的早期版本做了许多热心的测试和校对工作,在成书过程中给了我很多帮助。

就个人来说,我要感谢我的父母 Harald 和 Margot,还有我的姐姐 Miriam,感谢他们持续给予我的支持和鼓励。我还要感谢生命中的许多人,他们的爱和友谊给我能量,支持我完成这项富有挑战性的任务。

来自Sarah的致谢

我要感谢 Meghan Blanchette,没有她的帮助和指导,甚至就不会有本项目的存在。感谢 Celia La 和 Brian Carlson 早期对本书的审阅。感谢 O'Reilly 工作人员无尽的耐心。最后,感谢 DTS,感谢你永恒不变的支持。

电子书

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

{%}

目录