书籍详情
《机器学习实战:基于Scikit-Learn和TensorFlow第2版》[39M]百度网盘|亲测有效|pdf下载
  • 机器学习实战:基于Scikit-Learn和TensorFlow第2版

  • 出版社:机械工业出版社
  • 出版时间:2018-07-01
  • 热度:9491
  • 上架时间:2024-06-30 08:52:20
  • 价格:9.0
书籍预览
免责声明

本站支持尊重有效期内的版权/著作权,所有的资源均来自于互联网网友分享或网盘资源,一旦发现资源涉及侵权,将立即删除。希望所有用户一同监督并反馈问题,如有侵权请联系站长或发送邮件到ebook666@outlook.com,本站将立马改正

内容介绍

内容简介
  本书主要分为两部分,第一部分(第1~8章)涵盖机器学习的基础理论知识和基本算法,从线性回归到随机森林等,可以帮助你掌握Scikit-Learn的常用方法;第二部份(第9~16章)探讨深度学习和常用框架TensorFlow,手把手教你使用TensorFlow搭建和训练深度神经网络,以及卷积神经网络。
目录
O’Reilly Media,Inc.介绍
译者序
前言
第一部分 机器学习基础
第1章 机器学习概览
什么是机器学习
为什么要使用机器学习
机器学习系统的种类
机器学习的主要挑战
测试与验证
练习
第2章 端到端的机器学习项目
使用真实数据
观察大局
获取数据
从数据探索和可视化中获得洞见
机器学习算法的数据准备
选择和训练模型
微调模型
网格搜索
启动、监控和维护系统
试试看
练习
第3章 分类
MNIST
训练一个二元分类器
性能考核
多类别分类器
错误分析
多标签分类
多输出分类
练习
第4章 训练模型
线性回归
梯度下降
多项式回归
学习曲线
正则线性模型
练习
第5章 支持向量机
线性SVM分类
非线性SVM分类
SVM回归
工作原理
训练目标
练习
第6章 决策树
决策树训练和可视化
做出预测
估算类别概率
CART训练算法
计算复杂度
基尼不纯度还是信息熵
正则化超参数
回归
不稳定性
练习
第7章 集成学习和随机森林
投票分类器
bagging和pasting
Random Patches和随机子空间
随机森林
提升法
堆叠法
练习
第8章 降维
数据降维的主要方法
PCA
核主成分分析
局部线性嵌入
其他降维技巧
练习
第二部分 神经网络和深度学习
第9章 运行TensorFlow
安装
创建一个计算图并在会话中执行
管理图
节点值的生命周期
TensorFlow中的线性回归
实现梯度下降
给训练算法提供数据
保存和恢复模型
用TensorBoard来可视化图和训练曲线
命名作用域
模块化
共享变量
练习
第10章 人工神经网络简介
从生物神经元到人工神经元
用TensorFlow的高级API来训练MLP
使用纯TensorFlow训练DNN
微调神经网络的超参数
练习
第11章 训练深度神经网络
梯度消失/爆炸问题
重用预训练图层
快速优化器
通过正则化避免过度拟合
实用指南
练习
第12章 跨设备和服务器的分布式TensorFlow
一台机器上的多个运算资源
多设备跨多服务器
在TensorFlow集群上并行化神经网络
练习
第13章 卷积神经网络
视觉皮层的组织结构
卷积层
池化层
CNN架构
练习
第14章 循环神经网络
循环神经元
TensorFlow中的基本RNN
训练RNN
深层RNN
LSTM单元
GRU单元
自然语言处理
练习
第15章 自动编码器
高效的数据表示
使用不完整的线性自动编码器实现PCA
栈式自动编码器
使用堆叠的自动编码器进行无监控的预训练
去噪自动编码器
稀疏自动编码器
变分自动编码器
其他自动编码器
练习
第16章 强化学习
学习奖励最优化
策略搜索
OpenAI gym介绍
神经网络策略
评估行为:信用分配问题
策略梯度
马尔可夫决策过程
时间差分学习与Q学习
使用深度Q学习玩吃豆人游戏
练习
致谢
附录A 练习答案
附录B 机器学习项目清单
附录C SVM对偶问题
附录D 自动微分
附录E 其他流行的ANN架构
作者介绍
介绍
前言
  前言
  机器学习浪潮
  2006年,Geoffrey Hinton等人发表了一篇论文,展示了如何训练能够高精度(>98%)识别手写数字的深度神经网络。他们将这种技术称为“深度学习”。在当时,深度神经网络的训练被普遍认为是不可能的。这篇论文重新激起了科学界的兴趣,不久之后,许多新的论文展示了深度学习不仅是可行的,而且(在超级计算能力和大数据的帮助下)能够取得令人瞩目的成就,是其他机器学习技术所难以企及的。这种热情很快扩展到机器学习相关的许多其他领域。
  历经十年的快速发展,机器学习已经征服了整个行业。它已经成为众多高科技产品中的黑科技核心:对你的网络搜索结果进行排名,实现智能手机的语音识别,为你推荐视频,打败世界围棋冠军。在你意识到之前,它甚至会驾驶你的汽车。
  你的项目中的机器学习
  你已对机器学习充满了兴趣,并迫不及待想要投入其中了吧?
  可能你想让自己制作的机器人有思想?让它可以识别人脸?或者学会走路?
  或者你们公司有大量的数据(用户日志、财务数据、产品数据、机器传感器数据、热线数据、HR报告等),如果知道去哪儿找,你会挖掘出一些隐藏的宝石,比如:
  ·细分客户群,并为每个群体设置最佳的市场策略
  ·基于相似度来为每个顾客推荐产品
  ·检测哪些交易最有可能是欺诈性的
  ·预测下一年的收入
  ·其他(httphttps://www.kaggle.com/wiki/DataScienceUseCases)
  不论原因是什么,你已经下定决心来学习机器学习并在自己的项目中实现它。
  目标和方法
  本书假设你对机器学习几乎一无所知。本书的目标是提供给你实现从数据中学习的程序时所需的概念、直觉和工具。
  我们会覆盖很多技术,从最简单、最常用的(比如线性回归)到一些经常能赢得比赛的深度学习技术。
  我们将使用真正生产就绪的Python框架中的算法,而不是实现每个算法的玩具版本:
  ·Scikit-Learn(//scikit-learn.org/)非常易用,而且已经很高效地实现了机器学习中的众多算法,所以它是学习机器学习的一个很好的着手点。
  ·TensorFlow(//tensorflow.org/)是使用数据流图进行分布式数值计算的更复杂的库。通过在数千个多GPU服务器上分配计算,可以有效地训练和运行非常大的神经网络。TensorFlow由Google创建,用以支持其大型机器学习应用程序。它已于2015年11月开放源代码。
  本书更倾向于动手的方式,通过可以正常运行的具体实例和非常少的理论的方式来帮助读者逐步建立对机器学习的直觉。虽然你可以在不上机的情况下阅读本书,但我们强烈建议你通过在线运行Jupyter笔记本中代码示例(httphttps://github.com/ageron/handson-ml)的方式学习。
  先决条件
  本书假设你有一定的Python编程经验,而且熟悉Python中主流的科学计算库,例如Numpy(//numpy.org/)、Pandas(//pandas.pydata.org/),还有Matplotlib(//matplotlib.org/)。
  另外,如果你想要深入理解低层的原理,则需要大学水平的数学知识(微积分、线性代数、概率论和统计学)。
  如果你还不会Python,//learnpython.org/是一个很好的起点。官方的Python教程(httphttps://docs.python.org/3/tutorial/)也不错。
  如果你从没有用过Jupyter,第2章将指导你完成安装和基本操作。它是你工具箱中一个很好的工具。
  如果你不熟悉Python的科学库,Jupyter笔记本里包括了一些教程,另外其中还有一个关于线性代数的快速数学教程。
  学习路线图
  本书由两部分组成。第一部分(机器学习基础)由下列主题组成:
  ·机器学习是什么?它想要解决的问题是什么?机器学习系统中,主要的分类和基础概念有哪些?
  ·一个典型的机器学习项目由哪些步骤组成?
  ·拟合数据进行学习。
  ·优化成本函数。
  ·处理、清洗和准备数据。
  ·特征选择及特征工程。
  ·选择模型并使用交叉验证来调整超参数。
  ·机器学习的主要挑战,拟合不足和过度拟合(偏差/方差权衡)。
  ·降低训练数据的维度以对抗维度的灾难。
  ·最常见的学习算法:线性回归和多项式回归、逻辑回归、k-近邻、支持向量机、决策树、随机森林和集成算法。
  第二部分(神经网络和深度学习)由下列主题组成:
  ·神经网络是什么?它们擅长处理哪些问题?
  ·使用TensorFlow构建和训练神经网络。
  ·最重要的神经网络架构:前馈神经网络、卷积网络、递归网络、长期短期记忆(LSTM)网络和自动编码器。
  ·训练深度神经网络的技术。
  ·为海量数据集进行扩容。
  ·强化学习。
  第一部分基本上都基于Scikit-Learn,而第二部分则基于TensorFlow。
  不要太急于跳入深水区:深度学习无疑是机器学习中最令人兴奋的领域之一,你应该首先掌握基础知识。而且,大多数问题可以用较简单的技术很好地解决,如随机森林和集成算法(在第一部分讨论)。如果你拥有足够的数据、计算能力和耐心,深度学习非常适合复杂的问题,如图像识别、语音识别和自然语言处理。
  其他资源
  关于机器学习的资料有很多,Andrew Ng在Coursera上的机器学习课程(httphttps://www.coursera.org/learn/machine-learning/)和Geoffrey Hinton的神经网络和深度学习课程(httphttps://www.coursera.org/course/neuralnets)都很棒,虽然学习起来都需要投入大量的时间(比如几个月)。
  还有许多关于机器学习的有趣网站,当然还包括很出色的Scikit-Learn用户指南(//scikit-learn.org/stable/user_guide.html)。也可以试试Dataquest(httphttps://www.dataquest.io/),它提供了非常好的交互式教程,还有一些机器学习的博客,如Quora(//goo.gl/GwtU3A)上列出的。最后,深度学习网站有一个很好的资源列表(//deeplearning.net/)便于你学习更多知识。
  当然,还有很多关于机器学习的入门书籍,具体来说:
  ·Joel Grus著的Data Science from Scratch(O’Reilly出版)。本书介绍了机器学习的基础知识,并用纯Python实现了一些主要算法(顾名思义,从零开始)。
  ·Stephen Marsland著的Machine Learning:An Algorithmic Perspective(Chapman & Hall出版)。本书是对机器学习的一个很好的介绍,涵盖了广泛的主题,书中的实例使用了Python代码(也是从零开始,但使用NumPy)。
  ·Sebastian Raschka著的Python Machine Learning(Packt出版)。本书也是对机器学习的一个很好的介绍,它使用了一些Python开源库(如Pylearn 2和Theano)。
  ·Yaser S.Abu-Mostafa、Malik Magdon-Ismail和Hsuan-Tien Lin合著的,Learning from Data(AMLBook出版)。对于机器学习来说,这是一个相当理论化的方法,这本书提供了深刻的见解,特别是对偏差/方差权衡部分(见第4章)。
  ·Stuart Russell和Peter Norvig合著的A Modern Approach,3rd(Pearson出版)。这是一本很好的(很厚的)书,涵盖了包括机器学习在内的大量主题,可以帮助我们正确地看待和理解机器学习。
  最后还有一个非常好的学习方式是加入机器学习竞赛网站,比如Kaggle.com。它允许你通过解决现实世界中的问题来练习你的技能,而且有很多顶级的机器学习专家会帮助你。
  排版约定
  本书中使用以下排版约定:
  斜体
  指示新的术语、网址、电子邮件地址、文件名和文件扩展名。
  等宽字体(Constant width)
  用于程序清单,以及段落内引用的程序元素,如变量或函数名称、数据库、数据类型、环境变量、语句和关键字。
  等宽黑体(Constant width bold)
  显示应由用户输入的命令或其他文本。
  等宽斜体(Constant width italic)
  显示应由用户提供的值或由上下文确定的值来替换的文本。
  表示提示或者建议。
  表示一个普通的说明
  表示警告
  使用代码示例
  补充材料(代码示例、练习题等)可在httphttps://github.com/ageron/handson-ml下载。
  这本书可以帮助你完成工作。一般来说,本书提供的示例代码可以在程序和文档中使用。除非你复制了大部分代码,否则无须联系我们获得许可。例如,编写使用本书中几个代码块的程序不需要许可。不过销售或分发O’Reilly书籍中的示例CD-ROM需要获得许可。引用本书的示例代码来回答问题不需要许可。将本书中的大量示例代码整合到产品文档中则需要获得许可。
  我们赞赏但不要求归属权声明。归属权声明通常包括书名、作者、出版者和ISBN。例如:“Hands-On Machine Learning with Scikit-Learn and TensorFlow by Aureélien Geéron(O’Reilly).Copyright 2017 Aureélien Geéron,978-1-491-96229-9.”。
  如果你觉得你对示例代码的使用超出上述许可范围,可以随时通过<permissions@oreilly.com>联系我们。
  Safari在线电子书
  Safari(以前的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网上书店的更多信息,请访问我们的网站(httphttps://www.safaribooksonline.com)。
  如何联系我们
  美国:
  O’Reilly Media,Inc.
  1005 Gravenstein Highway North
  Sebastopol,CA 95472
  中国:
  北京市西城区西直门南大街2号成铭大厦C座807室(100035)
  奥莱利技术咨询(北京)有限公司
  我们为本书设立了专门的网页,其中有勘误表、程序示例以及其他有关信息,网址是//bit.ly/hands-on-machine-learning-with-scikit-learn-and-tensorflow。
  对本书的意见或询问技术问题,请发邮件至bookquestions@oreilly.com。
  更多与O’Reilly有关的图书、课程、会议、新闻等信息,请访问我们的网站//www.oreilly.com。
  读者可在Facebook上关注我们://facebook.com/oreilly。
  读者可在Twitter上关注我们://twitter.com/oreillymedia。
  读者可在YouTube上关注我们://www.youtube.com/oreillymedia。
  致谢
  我要感谢我在Google的同事,特别是YouTube视频分类小组,他们教给我很多关于机器学习的知识。没有他们,我永远无法开始这个项目。特别感谢我的个人机器学习专家:Clément Courbet、Julien Dubois、Mathias Kende、Daniel Kitachewsky、James Pack、Alexander Pak、Anosh Raj、Vitor Sessak、Wiktor Tomczak、Ingrid von Glehn、Rich Washington以及YouTube巴黎办公室的所有人。
  非常感谢所有在百忙中抽出时间来仔细阅读书稿的人。感谢Pete Warden回答了我所有关于TensorFlow的问题,他对第二部分进行了审校,提供了许多有趣的见解,当然也成为TensorFlow核心团队的一员。你一定要浏览他的博客(httphttps://petewarden.com/)!非常感谢Lukas Biewald对第二部分的全面审校:他认真而仔细地测试了所有的代码(并且发现了一些错误),提出了许多很好的建议,他的热情也很有感染力。你应该浏览他的博客(httphttps://lukasbiewald.com/)和他做的很酷的机器人(httphttps://goo.gl/Eu5u28)!感谢Justin Francis,他也仔细审校了第二部分,特别是第16章,指出了一些错误并提供了很好的见解。查看他在TensorFlow上的帖子(httphttps://goo.gl/28ve8z)!
  非常感谢David Andrzejewski,他审校了本书的第一部分,提供了非常有用的反馈,指出了不明确的部分并提出了改进建议。你应该看看他的网站(//www.david-andrzejewski.com/)!感谢Grégoire Mesnil,他对第二部分进行了评论,并对培训神经网络提供了非常有趣的实用建议。Eddy Hung、Salim Sémaoune、Karim Matrah、Ingrid von Glehn、Iain Smears和Vincent Guilbeau先生审校第一部分并提出了许多有用的建议。我还要感谢我的岳父兼前数学老师Michel Tessier,他现在是Anton Chekhov的一名优秀翻译,帮助我解决了本书中的一些数学标记和符号的问题,并审校了线性代数Jupyter笔记本。
  当然,也要对我亲爱的兄弟Sylvain由衷地说一声“谢谢”,他审校了每一章,对每一行代码进行了测试,几乎在每一部分都提供了反馈,并鼓励我有始有终。爱你,兄弟!
  非常感谢O’Reilly优秀的员工,特别是Nicole Tache,他给了我很多有价值的反馈,他开朗、善于鼓励他人并乐于助人。还要感谢Marie Beaugureau、Ben Lorica、Mike Loukides和Laurel Ruma认可本书,并帮助我确定写作范围。感谢Matt Hacker和Atlas团队的所有成员回答了关于格式化、asciidoc和LaTeX的所有技术问题,同时感谢Rachel Monaghan、Nick Adams和所有产品团队的最终评审以及他们数百次的更正。
  最后,非常感谢我的爱妻Emmanuelle,以及我们三个优秀的孩子:Alexandre、Rémi和Gabrielle。他们鼓励我勤于写作,并提出了许多问题(谁说不能教7岁的孩子神经网络?),还给我递饼干和咖啡。人生如此,夫复何求?
精彩书摘
  什么是机器学习
  机器学习是一门能够让编程计算机从数据中学习的计算机科学(和艺术)。
  这里有一个略微笼统的定义:
  机器学习研究如何让计算机不需要明确的程序也能具备学习能力。
  ——Arthur Samuel,1959
  还有一个更偏工程化的定义:
  一个计算机程序在完成任务T之后,获得经验E,其表现效果为P,如果任务T的性能表现,也就是用以衡量的P,随着E的增加而增加,可以称其为学习。
  ——Tom Mitchell,1997
  举例来说,垃圾邮件过滤器就是一个机器学习的程序,它通过垃圾邮件(比如用户手动标记的垃圾邮件)以及常规邮件(非垃圾邮件)的示例,来学习标记垃圾邮件。系统用来学习的这些示例,我们称之为训练集。每一个训练示例称为训练实例或者是训练样本。在本例中,任务T就是给新邮件标记垃圾邮件,经验E则是训练数据,那么衡量性能表现的指标P则需要我们来定义,例如,我们可以使用被正确分类的邮件的比率来衡量。这个特殊的性能衡量标准称为精度,经常用于衡量分类任务。
  所以,如果你只是下载了维基百科的副本,你的电脑得到了更多的数据,这并不会给任何任务带来提升。因此,它不是机器学习。
精彩插图