前言
近年来,机器学习技术已经渗透到我们日常生活的各个方面,比如网上购物时的商品推荐、浏览网页时的广告推送、手机拍照后的图像处理、电子邮箱中的垃圾邮件过滤、停车场出入口的车牌识别、各种游戏中的机器人玩家以及汽车厂商正在研发的无人驾驶等,机器学习技术的应用随处可见,并且它的发展极其迅猛,在更多领域令人兴奋(或恐惧)的应用已被研发出来或正在研发中。
尤瓦尔•赫拉利在其畅销书《未来简史》中表明了一个观点:未来的世界由机器学习算法掌控。当了解到像谷歌、苹果、亚马逊、IBM这样的大公司投入巨资用于机器学习的理论和应用研究,并且时不时就听到AI在某领域把人类打得一败涂地的新闻时,或许我们就不会认为赫拉利的观点是离谱的异端邪说,或出于好奇,或出于恐惧,或出于实际的目的,我们都应有充足的动力学习机器学习。
市面上机器学习的书已经很多了,大体上分为两类:一类是偏重机器学习理论的书,这种类型的书,算法理论部分大都介绍得很详细,但对于算法仅给出粗略的伪代码,而没有详尽的编码实现,也没有提供案例应用,在初学者对机器学习了解甚少的情况下,直接面对枯燥烦琐的数学推导,难免痛苦与沮丧。另外,由于初学者很难直接根据理论自己实现算法以及恰当地运用算法进行项目实践,因此无法验证学习成果。另一类是偏重机器学习应用的书,这类书对算法的理论进行了简单的提及,省略了有助于理解的重要数学推导,且大多数不会带领读者编码实现一个算法,而是直接使用开源库(如sklearn)中实现的算法,这类书算法的案例应用部分介绍得很详细,初学者会对机器学习应用有所了解,但由于理论匮乏且没有亲自动手实现算法,故导致无法深入理解算法,学习一段时间后大部分内容便忘记了。
本书是一本写给初学者的机器学习算法入门书,试图填补以上两类书的不足。本书在讲解算法时,首先详细介绍数学模型及原理,然后带领读者根据模型和算法描述进行算法实现,最后通过案例让读者进一步体会算法的应用场景以及应用时所需注意的问题。其中,算法实现部分是本书的重点,这部分所有算法的实现都基于Numpy这样一个非常底层的数学库,这就意味着需自己手工实现更多的细节,例如在计算损失函数的梯度时,需要手工推导计算梯度的数学公式,然后对照公式编码实现计算梯度的函数,相信本书的这种做法对初学者来说是一个有益的训练。另外,书中几乎每一行代码都给出了详尽的注释,通过代码注释来讲解算法的实现能给读者带来更好的体验,也便于读者理解编码的思想。
本书精选了经典的机器学习算法进行讲解,主要包括:
- 线性回归
- Logistic回归与Softmax回归
- 决策树(分类与回归)
- 朴素贝叶斯
- 支持向量机
- k近邻学习
- K-Means
- 人工神经网络
以上算法涵盖机器学习领域重要的思想,建议初学者在学完本书后能深入理解并自己实现以上算法,它们是日后在机器学习领域继续深入学习的基础。
本书还提供了算法示例的源代码,读者可以扫描以下二维码下载:
如何在下载过程中遇到问题,请联系booksaga@163.com,邮件主题为“Python机器学习算法:原理、实现与案例下载资源”。
由于笔者水平有限,书中难免出现纰漏,恳请读者不吝赐教。
最后,感谢清华大学出版社的王金柱编辑对笔者的信任和在写作方面的指点,我们的第二次合作非常愉快。
刘 硕
2019年7月