机器学习:公式推导与代码实现电子书

简介: 本书基于NumPy与sklearn,介绍26个主流机器学习算法的实现。

机器学习虽经近几十年的发展,在国内大规模流行却是近几年的事情。这些年国内机器学习领域历经产学研的极大繁荣,越来越多的人投入到机器学习的学习与研究工作之中。在此背景下,国内机器学习领域的相关教材和参考书大多以快速上手、重在实战为主。

相反,本书却好像在逆潮流而行。本书的两大主题——公式推导与代码实现,毫无疑义都是在直击机器学习的基本功。在如今的大环境下,作者编写此书的目的无疑是呼吁大家重视基础,夯实理论学习的基本功。

这是一本极具特色的机器学习参考书。全书有两个非常鲜明的特点。第一个是书名所点出的,基于数学理论的公式推导与基于NumPy的代码实现之间的对应;第二个则是基于NumPy的代码实现与基于sklearn机器学习算法库代码实现的比较。

第一个特色体现出这是一本作者总结个人学习和工作经验编著而成的书。依托于国内两本机器学习理论著作,根据它们重在理论而缺少代码的特点,并结合当前学习者和求职者遇到的问题,将机器学习的公式推导与算法的代码逻辑实现进行有机的融合,能够给读者带来耳目一新的体验。

第二个特色则表明作者希望大家在熟悉理论和夯实基本功之后,还是要回归到机器学习的实践应用上。重视公式推导和代码实现的最终目的,也还是要落地于实际应用。本书用NumPy实现机器学习算法,目的不是让大家在实际工作的过程中重复造轮子,而是重视机器学习算法的基本功。真正实际应用时,调用现成的机器学习算法库仍然是第一选择。

对于本书,有如下几点阅读建议,供大家参考。

首先,本书的理论框架借鉴了《统计学习方法》和西瓜书《机器学习》,阅读本书的同时可以配套上述两本书进行参考,相信会有不小的帮助。其次,本书中的公式推导大多只涉及算法的逻辑层面,非常易于阅读,推荐大家参照本书手动推导一遍。最后,对于本书所有的代码实现例子,希望大家可以基于本书配套的代码库,手动运行一遍,相信一定会学有所获。

祝大家阅读愉快!

前言

时至今日,以机器学习为代表的人工智能技术已经取得令人惊叹的成就。从计算机视觉、自然语言处理、推荐系统,到人脸识别、自动驾驶、医学诊断和电子竞技等,机器学习已逐渐普及到各行各业。

作为一名算法工程师,笔者从2017年以来一直从事医疗数据和医学影像数据的处理和分析工作。在笔者的技术成长过程中,李航老师的《统计学习方法》和周志华老师的“西瓜书”《机器学习》,给了笔者极大的帮助和启发。对于国内机器学习相关方向的学生和从业人员,这两本书几乎人手一本。

这两本书有一个共同的特点,就是理论功底相当深厚,但不太注重算法的代码实现。这两年笔者接触了不少求职者,其中大部分人除了在机器学习基本原理上狠下功夫之外,并不满足于现有机器学习调包的学习方式,希望能够从底层的算法实现逻辑和方法上更加深入地掌握机器学习。事实上,随着这几年机器学习的火爆,从业门槛也越来越高,以至于经常出现让面试者现场手推对数几率回归和手写反向传播代码的情况。这些都使得笔者产生了撰写这本书的想法。

机器学习是一门建立在数学理论上的应用型学科,完备的数学公式推导对于每一个机器学习研究者都是非常必要的。而代码实现是更加深入地理解机器学习算法的内在逻辑和运行机制的不二法门。因此,本书取名为《机器学习:公式推导与代码实现》。

本书力求系统、全面地展示公式推导和代码实现这两个维度。全书分为六大部分,26章,包括入门篇、监督学习单模型、监督学习集成模型、无监督学习模型、概率模型和总结。其中监督学习的两大部分是本书的重点内容。在叙述方式上,全书每一章对应一个具体的模型和算法,一般会以一个例子或者概念作为切入点,然后重点从公式推导的角度介绍算法,最后辅以一定程度的基础代码实现,重在展现算法实现的内在逻辑。各部分、各章内容相对独立,但前后又多有联系,读者可以从头到尾通读全书,也可以根据自身情况选读某一部分或某一章节。

版权:人民邮电出版社