在本文中,将介绍Packt编写的Python Machine Learning,第三版,对于已经具有ML和数据科学基础知识的开发人员来说,这是一个很好的资源。
掌握数学和编程技巧
即时而言,Python机器学习不适用于业余爱好者。作者假定您具有可靠的Python命令。本书使用了一些高级列表和收集功能。(非常感谢)还有一些面向对象的编程技术,使您可以将可重用的组件用于您的机器学习程序。
您还需要具有NumPy,Pandas和Matplotlib等数据科学库的基础知识,尽管本书对它们的功能进行了更详细的介绍。
除非您对数据科学,微积分和统计的基础知识有一定的了解,否则您会发现Python Machine Learning有点复杂和混乱。数学比入门书籍要复杂得多。您会发现很多用于损失函数,正则化函数,感知器,神经网络等的演算公式。
但是Python机器学习的作者通过示例和逐步的编码经验在解释这些公式方面做得很好。这些示例使内容可供更广泛的读者访问,并使该书与为学术读者编写的教科书区分开。
也有很多相关论文的参考文献,它们提供了有关不同机器学习和深度学习概念的深入解释,如果您想进一步扩展在Python机器学习中学习的知识,这将非常有用。
对机器学习的一些面向对象的热爱
大多数机器学习和数据科学书籍都专注于编写结构化代码,并依赖于在示例之间复制和粘贴代码。另一方面,Python机器学习引入了面向对象的概念来创建简洁且可重用的代码,这是我真正喜欢的。
当然,对于不熟悉继承,抽象和多态性等概念的开发人员,OOP的引入使本书变得更加复杂。但是有可能,如果您想在构建机器学习应用程序方面取得成功,就需要OOP技能。
Python机器学习还提供了sklearn的强大层次分解。这将帮助您更好地理解和利用您将在机器学习项目中经常使用的Python库之一的功能。
DIY机器学习方法
Python机器学习真正吸引人的一件事是对机器学习库的某些基本组件进行的自行完成方法。您可以从头开始创建自己的感知器类,这使您对神经网络的工作方式有了非常扎实的认识。稍后,您将在感知器的组件上进行构建,以了解其他神经网络概念,例如随机梯度下降(SGD),反向传播和卷积。我看过几本解释神经网络工作原理的书和课程,但这是到目前为止我所见过的最全面,最动手的文字。
您还可以重新创建一些基本的机器学习算法,例如主成分分析(PCA),这可以帮助您更好地掌握算法的每个超参数的效果。您在本书中构建的自定义算法效率不高,仅用于教育目的。然后,Python Machine Learning的作者在Scikit-learn和TensorFlow中介绍了这些算法的等效项。
您将在Python机器学习中找到的另一个很棒的功能是一章,它引导您完成将机器学习算法集成到实际应用程序中的过程。您将创建一个由后端中的机器学习算法支持的Web应用程序。公平地讲,该应用程序是粗糙的,但重点是要说明这些不同部分如何组合在一起,并且作者在此方面做得很好。
丰富的机器学习和深度学习算法
在评估机器学习书籍时,要考虑的一件事是您要探索的算法花名册。在这方面,Python机器学习并不令人失望。它带您了解基本的有监督和无监督机器学习算法,例如线性和逻辑回归,支持向量机,决策树和随机森林以及k均值聚类。除此之外,它还增加了一些讨论较少的算法,例如聚集聚类和DBSCAN。
其中很多可能与您在数据科学和机器学习入门书籍中已经阅读的内容重叠,但是非常欢迎Python机器学习为每个主题带来的深度。
Python机器学习还将带您了解入门书籍中找不到的一些算法和功能,例如使用mlextend可视化不同数据集特征之间的相关性或对回归模型进行全面评估。
本书的深度学习部分提供了许多有用的理论材料和有关不同类型的神经网络的动手经验。您将通过TensorFlow和Keras使用完全连接的,循环的和卷积神经网络。这本书包含一个完整的部分,直观地解释了TensorFlow组件背后的逻辑,该主题通常很难引起您的注意。
与本书的其余部分一样,深度学习部分也是由示例驱动的。在本书的最后,您将访问一些高级结构,例如变压器和生成对抗网络。关于强化学习,还有一个介绍性的章节,您将在其中使用流行的OpenAI Gym库。
让人有些失望的是自然语言处理的RNN部分,其中示例代码突然结束,而没有测试模型的部分。
总结思想
与以前的版本一样,Python机器学习第三版对于那些已经精通机器学习和数据科学基础知识的开发人员来说是一本很好的书。它不会使您成为准备以六位数的薪水准备就绪的机器学习和深度学习专家,但它无疑将为机器学习的更高级探索奠定基础。
下一步是什么?根据您感兴趣的领域,我建议您选择一本专门针对计算机视觉,自然语言处理或强化学习的书或课程。