之前早些时候,红色石头就在公众号发文推荐过一本书,就是短小精悍的《The Hundred-Page Machine Learning Book》,中文译为《百页机器学习》。之所以说这本书短小精悍,是因为它仅仅只有 152 页。如今这本书已经正式完稿了!而且开源了书籍配套的所有代码!
这本《百页机器学习》的作者是 Gartner 公司机器学习团队负责人、人工智能博士 Andriy Burkov。作者表示,这本书麻雀虽小五脏俱全,内容十分丰富。
作者本着「先读后买」的原则,允许读者免费在线阅读本书,这里附上在线阅读地址:
http://themlbook.com/wiki/doku.php?id=start
适合人群
这本书包含了自 20 世纪 60 年代以来发展起来的大量机器学习材料中被证明具有重大实用价值的部分。一个机器学习的初学者会在这本书中发现足够的细节,以获得对这个领域的一个舒适的理解水平。有经验的实践者可以使用这本书作为进一步自我提高的方向集。
书籍目录
这本《百页机器学习》已经完稿!具体目录如下:
- 前言
- 第 1 章:介绍
第一部分 监督式学习
- 第二章:标记和定义
- 第三章:基础算法
- 第四章:学习算法的解剖
- 第五章:基础实战
- 第六章:神经网络与深度学习
- 第七章:问题与解决
- 第八章:进阶实战
第二部分 非监督式学习和其它学习
- 第九章:非监督式学习
- 第十章:其它形式学习
- 第十一章:结论
开源代码
这是一个好消息,现在本书配套的所有代码都已开源,GitHub 地址为:
https://github.com/aburkov/theMLbook
有了代码,大家可以一边看书一边编写代码了。效率翻倍,其乐无穷~
例如本书第三章中最简单的线性回归算法。
GitHub 上相应的 Python 代码为:
import numpy as np import matplotlib.pyplot as plt from sklearn.linear_model import Ridge from sklearn.preprocessing import PolynomialFeatures from sklearn.pipeline import make_pipeline import matplotlib matplotlib.rcParams['mathtext.fontset'] = 'stix' matplotlib.rcParams['font.family'] = 'STIXGeneral' matplotlib.rcParams.update({'font.size': 18}) def f(x): """ function to approximate by polynomial interpolation""" return 0.5 * x # generate points used to plot x_plot = np.linspace(-10, 10, 100) # generate points and keep a subset of them x = np.linspace(-10, 10, 100) rng = np.random.RandomState(0) rng.shuffle(x) x = np.sort(x[:10]) noize = [(-2 + np.random.random()*2) for i in range(len(x))] y = f(x) + noize # create matrix versions of these arrays X = x[:, np.newaxis] X_plot = x_plot[:, np.newaxis] colors = ['red', 'red']#, 'orange' lw = 2 type_of_regression = ["linear regression", "regression of degree 10"] fit = ["fit", "overfit"] for count, degree in enumerate([1,10]):#, 2, 15 plt.figure(count) axes = plt.gca() axes.set_xlim([-10,10]) axes.set_ylim([-10,10]) plt.scatter(x, y, color='navy', s=30, marker='o', label="training examples") plt.xticks([-10.0, -5.0, 0.0, 5.0, 10.0]) plt.yticks([-10.0, -5.0, 0.0, 5.0, 10.0]) model = make_pipeline(PolynomialFeatures(degree), Ridge()) model.fit(X, y) y_plot = model.predict(X_plot) plt.plot(x_plot, y_plot, color=colors[count], linewidth=lw, label=type_of_regression[count]) plt.legend(loc='best') fig1 = plt.gcf() fig1.subplots_adjust(top = 0.98, bottom = 0.1, right = 0.98, left = 0.08, hspace = 0, wspace = 0) fig1.savefig('../../Illustrations/linear-regression-' + fit[count] + '.eps', format='eps', dpi=1000, bbox_inches = 'tight', pad_inches = 0) fig1.savefig('../../Illustrations/linear-regression-' + fit[count] + '.pdf', format='pdf', dpi=1000, bbox_inches = 'tight', pad_inches = 0) fig1.savefig('../../Illustrations/linear-regression-' + fit[count] + '.png', dpi=1000, bbox_inches = 'tight', pad_inches = 0) plt.show()
短小精悍的《百页机器学习》是一本不错的机器学习工具手册,有理论有代码,是一个不错的选择。
话不多说,开始学习吧~