编辑推荐
算法与代码兼顾,理论与实践结合
- 很丰富:7种算法,50段实现,55个实例,总代码量5295行,全面而不冗余;
- 很扎实:对经典有效的机器学习算法的核心内容进行了相当详细的推导;
- 很应用:将理论实打实地用Python代码写出来,可以解决一定的任务;
- 很前沿:叙述了TensorFlow框架、Inception-v3 from Google、迁移学习等前沿技术。
何宇健 著 / 2017年7月出版
内容提要
Python与机器学习这一话题是如此的宽广,仅靠一本书自然不可能涵盖到方方面面,甚至即使出一个系列的书也难能做到这点。单就机器学习而言,其领域就包括但不限于如下:有监督学习(Supervised Learning),无监督学习(Unsupervised Learning)和半监督学习(Semi-Supervised Learning)。而其具体的问题又大致可以分为两类:分类问题(Classification)和回归问题(Regression)。
Python本身带有许多机器学习的第三方库,但《Python与机器学习实战:决策树、集成学习、支持向量机与神经网络算法详解及编程实现》在绝大多数情况下只会用到Numpy这个基础的科学计算库来进行算法代码的实现。这样做的目的是希望读者能够从实现的过程中更好地理解机器学习算法的细节,以及了解Numpy的各种应用。不过作为补充,《Python与机器学习实战:决策树、集成学习、支持向量机与神经网络算法详解及编程实现》会在适当的时候应用scikit-learn这个成熟的第三方库中的模型。
《Python与机器学习实战:决策树、集成学习、支持向量机与神经网络算法详解及编程实现》适用于想了解传统机器学习算法的学生和从业者,想知道如何高效实现机器学习算法的程序员,以及想了解机器学习算法能如何进行应用的职员、经理等。
精彩导读
前言
自从AlphaGo在2016年3月战胜人类围棋顶尖高手李世石后,“人工智能”“深度学习”这一类词汇就进入了大众的视野;而作为更加宽泛的一个概念——“机器学习”则多少顺势成为了从学术界到工业界都相当火热的话题。不少人可能都想尝试和体验一下“机器学习”这个可以说是相当神奇的东西,不过可能又苦于不知如何下手。编著本书的目的,就是想介绍一种入门机器学习的方法。虽然市面上已经有许多机器学习的书籍,但它们大多要么过于偏重理论,要么过于偏重应用,要么过于“厚重”;本书致力于将理论与实践相结合,在讲述理论的同时,利用Python这一门简明有力的编程语言进行一系列的实践与应用。
当然,囿于作者水平,本书实现的一些模型从速度上来说会比成熟的第三方库中实现的模型要慢不少。一方面是因为比较好的第三方库背后往往会用底层语言来实现核心算法,另一方面则是本书通常会把数据预处理的过程涵盖在模型中。以决策树模型为例,scikit-learn中的决策树模型会比本书的实现要快很多,但本书实现的模型能够用scikit-learn中决策树模型训练不了的训练集来训练。
同时,限于篇幅,本书无法将所有代码都悉数放出(事实上这样做的意义也不是很大),所以我们会略去一些相对枯燥且和相应算法的核心思想关系不大的实现。对于这些实现,我们会进行相应的算法说明,感兴趣的读者可以尝试自己一步一步地去实现,也可以直接在GitHub上面查看笔者自己实现的版本(GitHub地址会在相应的地方贴出)。本书所涉及的所有代码都可以参见https://github.com/carefree0910/MachineLearning ,笔者也建议在阅读本书之前先把这个链接里面的内容都下载下来作为参照。毕竟即使在本书收官之后,笔者仍然会不时地在上述链接中优化和更新相应的算法,而这些更新是无法反映在本书中的。
虽说确实可以完全罔顾理论来用机器学习解决许多问题,但是如果想要理解背后的道理并借此提高解决问题的效率,扎实的理论根基是必不可少的。本书会尽量避免罗列枯燥的数学公式,但是基本的公式常常不可或缺。虽然笔者想要尽量做到通俗易懂,但仍然还是需要读者拥有一定的数学知识。不过为了阅读体验良好,本书通常会将比较烦琐的数学理论及相关推导放在每一章的倒数第二节(最后一节是总结)作为某种意义上的“附加内容”。这样做有若干好处:
对于已经熟知相关理论的读者,可以不再重复地看同样的东西;
对于只想了解机器学习各种思想、算法和实现的读者,可以避免接受不必要的知识;
对于想了解机器学习背后道理和逻辑的读者,可以有一个集中的地方进行学习。
本书的特点
理论与实践结合,在较为详细、全面地讲解理论之后,会配上相应的代码实现以加深读者对相应算法的理解。
每一章都会有丰富的实例,让读者能够将本书所阐述的思想和模型应用到实际任务中。
在涵盖了诸多经典的机器学习算法的同时,也涵盖了许多最新的研究成果(比如最后一章所讲述的卷积神经网络(CNN)可以说就是许多“深度学习”的基础)。
所涉及的模型实现大多仅仅基于线性代数运算库(Numpy)而没有依赖更高级的第三方库,读者无须了解Python那浩如烟海的第三方库中的任何一个便能读懂本书的代码。
积跬步以至千里。每天读本书,为您搜罗最具权威专业书籍,更多图书推荐请关注每日读书。
好知识需要分享,如您有喜欢的书籍想与广大开发者分享,请在文章下方评论留言,我们将为大家推荐您的爱书!