直接实战的话,其实看 Scikit Learn 的官网就可以了。不仅有算法的说明,还有相关的参数文档,还有对应的案例分析,也有一些简单数据供参考。从开源的角度上讲,Scikit Learn 已经做得非常不错了。遇到相关知识点的话,去翻阅博客或者书籍的对应章节就可以了。
机器学习是计算机科学与人工智能的重要分支领域。周志华老师的《机器学习》这本书作为该领域的入门教材,在内容上涵盖机器学习基础知识的很多方面。全书共 16 章,大致分为 3 个部分:第 1 部分(第 1~3 章)介绍机器学习的基础知识;第 2 部分(第 4~10 章)讨论一些经典而常用的机器学习方法(决策树、神经网络、支持向量机、贝叶斯分类器、集成学习、聚类、降维与度量学习);第 3 部分(第 11~16 章)为进阶知识,内容涉及特征选择与稀疏学习、计算学习理论、半监督学习、概率图模型、规则学习以及强化学习等。
《统计学习方法(第二版)》全面系统地介绍了统计学习的主要方法,共分两篇。第一篇系统介绍监督学习的各种重要方法,包括决策树、感知机、支持向量机、很大熵模型与逻辑斯谛回归、推进法、多类分类法、EM算法、隐马尔科夫模型和条件随机场等;第二篇介绍无监督学习,包括聚类、奇异值、主成分分析、潜在语义分析等。
在学机器学习或者深度学习的时候,实战一直是一个重要的环节。《机器学习实战:基于Scikit-Learn和TensorFlow》本书作者 Aurélien Géron 曾经是谷歌工程师,在 年至 年,主导了YouTube的视频分类工程,拥有丰富的机器学习项目经验。作者的写作初衷是希望从实践出发,手把手地帮助开发者从零开始搭建起一个神经网络。这也正构成了本书区别于其他机器学习教程的最重要的特质—不再偏向于原理研究的角度,而是从开发者的实践角度出发,在动手写代码的过程中,循序渐进地了解机器学习的理论知识和工具的实践技巧。对于想要快速上手机器学习的开发者来说,本书是一个非常值得尝试的起点项目。
《机器学习实战》主要介绍机器学习基础,以及如何利用算法进行分类,并逐步介绍了多种经典的监督学习算法,如k近邻算法、朴素贝叶斯算法、Logistic 回归算法、支持向量机、AdaBoost 集成方法、基于树的回归算法和分类回归树(CART)算法等。第三部分则重点介绍无监督学习及其一些主要算法:k均值聚类算法、Apriori 算法、FP-Growth 算法。第四部分介绍了机器学习算法的一些附属工具。本书通过精心编排的实例,切入日常工作任务,摒弃学术化语言,利用高效的可复用Python代码来阐释如何处理统计数据,进行数据分析及可视化。通过各种实例,读者可从中学会机器学习的核心算法,并能将其运用于一些策略性任务中,如分类、预测、推荐。另外,还可用它们来实现一些更高级的功能,如汇总和简化等。
《深度学习》这本书的作者是 Ian Goodfellow、Yoshua Bengio 和 Aaron Courville 三位大牛。这本书的中文版于 年 7 月 22 号上市。该书由众多译者协力完成。《深度学习》这本书从浅入深介绍了基础数学知识、机器学习经验以及现阶段深度学习的理论和发展,不管是人工智能技术爱好者,还是相关从业人员使用这本书都是非常有好处的。另外,读者如果想熟悉一些数学知识,本书也做了一些介绍,包括矩阵,导数等基本内容。读者可以从头读到尾。
《深度学习》这本书的一大特点是介绍深度学习算法的本质,脱离具体代码实现给出算法背后的逻辑,不写代码的人也完全可以看。为了方便读者阅读,作者特别绘制了本书的内容组织结构图,指出了全书20章内容之间的相关关系。读者可以根据自己的背景或需要,随意挑选阅读。
除此之外,还有一本书《动手学深度学习》。本书旨在向读者交付有关深度学习的交互式学习体验。书中不仅阐述深度学习的算法原理,还演示它们的实现和运行。与传统图书不同,本书的每一节都是一个可以下载并运行的 Jupyter 记事本,它将文字、公式、图像、代码和运行结果结合在了一起。此外,读者还可以访问并参与书中内容的讨论。
全书的内容分为 3 个部分:第一部分介绍深度学习的背景,提供预备知识,并包括深度学习基础的概念和技术;第二部分描述深度学习计算的重要组成部分,还解释近年来令深度学习在多个领域大获成功的卷积神经网络和循环神经网络;第三部分评价优化算法,检验影响深度学习计算性能的重要因素,并分别列举深度学习在计算机视觉和自然语言处理中的重要应用。
本书同时覆盖深度学习的方法和实践,主要面向在校大学生、技术人员和研究人员。阅读本书需要读者了解基本的Python编程或附录中描述的线性代数、微分和概率基础。
如果觉得数学知识不太够,可以看这一本《深度学习的数学》。本书基于丰富的图示和具体示例,通俗易懂地介绍了深度学习相关的数学知识。第1章介绍神经网络的概况;第 2 章介绍理解神经网络所需的数学基础知识;第 3 章介绍神经网络的优化;第 4 章介绍神经网络和误差反向传播法;第 5 章介绍深度学习和卷积神经网络。书中使用 Excel 进行理论验证,帮助读者直观地体验深度学习的原理。
如果想复习一些数学课程,可以读一些数学方面的基础课,例如微积分,线性代数,概率论等课程。程序员直接阅读数学书可能会比较枯燥,但是有人贴心地针对程序员撰写了相应的数学书籍。
《程序员的数学 第2版》面向程序员介绍了编程中常用的数学知识,借以培养初级程序员的数学思维。读者无须精通编程,也无须精通数学,只要具备四则运算和乘方等基础知识,即可阅读本书。本书讲解了二进制计数法、逻辑、余数、排列组合、递归、指数爆炸、不可解问题等许多与编程密切相关的数学方法,分析了哥尼斯堡七桥问题、高斯求和、汉诺塔、斐波那契数列等经典问题和算法。引导读者深入理解编程中的数学方法和思路。
《程序员的数学2:概率统计》涉及随机变量、贝叶斯公式、离散值和连续值的概率分布、协方差矩阵、多元正态分布、估计与检验理论、伪随机数以及概率论的各类应用,适合程序设计人员与数学爱好者阅读,也可作为高中或大学非数学专业学生的概率论入门读物。
《程序员的数学3:线性代数》本书用通俗的语言和具象的图表深入讲解了编程中所需的线性代数知识。内容包括向量、矩阵、行列式、秩、逆矩阵、线性方程、LU分解、特征值、对角化、Jordan标准型、特征值算法等。
通常来说,学习机器学习的时候,精读一本书即可,其他书用于辅助和查缺补漏,然后就可以根据科研的方向和导师的要求来阅读论文和搞科研了。如果想要学习数学系的一些课程的话,可以先阅读一些工科方面的数学书,有时间的话再选择一些数学的专业书籍进行阅读。实战的话就直接上手,一边学一边看就可以了~~~