/>
机器学习入门书单版权声明:已获得原作者 @微调 授权。
本回答在 机器学习入门路线,建议移步原文进行学习。
第一阶段:基础入门(3-6个月)(推荐1门课程和2本书)
入门的第一步是学习一些经典课程并配套经典书籍,一般来说这个过程在半年之内比较合适。在这个部分介绍的课程和书籍都属于难度非常低的,对数学和编程都没什么太大的要求。吴恩达Cousera机器学习课程
Andrew Ng的机器学习课程(Machine Learning | Coursera)是很多人的启蒙课程,难度适中且完全免费。Coursera上已有五万余人给出了评分,平均得分4.9分,满分5分。
2. Python机器学习 & Introduction to Statistical Learning with R
在学习吴恩达的在线课程时,推荐同时阅读相关的机器学习书籍补充理论知识。Introduction to Statistical Learning with R(ISL)The Element of Statistical Learning (ESL) 是频率学派的统计学习"圣经”。
而 Introduction to Statistical Learning with R(ISL)可以满足更广大阅读人群;ISL是ESL的入门版,不仅大量的去除了繁复的数学推导,还加入了R编程的部分,方便大家可以尽快上手。
这本书是我 @微调 推荐书单第一名:ISL的电子版是免费的:Python机器学习(作者 Sebastian Raschka)这本书去掉了大量的数学推导的部分,仅保留了机器学习的核心应用。阅读本书可以快速对如何使用Python机器学习框架Sklearn有一个基本的了解,可以很快上手开始工作。
本书涉及的内容很广泛,虽然只有400多页,但内容涉及了数据预处理(Data Preprocessing), 维度压缩和核函数(Dimension Reduction & Kernel),评估方法如交叉验证,集成学习,情感分析,聚类,甚至还包括了神经网络和Theano。
更多介绍:带你读机器学习经典(三): Python机器学习(Chapter 1&2)。
特别推荐最近新出的一本Python机器学习类书籍:《Hands-On Machine Learning with Scikit-Learn, Keras, and TensorFlow, 2nd Edition》。
3. 周志华《机器学习》
周志华老师的《机器学习》也被大家亲切的叫做"西瓜书”。虽然只有几百页,但内容涵盖比较广泛。然而和其他人的看法不同,建议把西瓜书作为参考书而不是主力阅读书。西瓜书因为篇幅的限制,涵盖了很多的内容但无法详细的展开讲,对于初学者自学来说实际阅读难度很大。这本书更适合作为学校的教材或者中阶读者自学使用,入门时学习这本书籍难度稍微偏高了一些。
个人建议的用法是在学习网课和阅读ISL遇到疑惑时可以参考西瓜书的相关章节,但入门阶段没有必要一章一章的阅读,建议在这个阶段只阅读前十章即可。
注:开源组织 @Datawhale 在西瓜书的基础上,对书中的较难理解的公式进行解析和推导,整理为 pumpkin book(南瓜书)。也可作为学习西瓜书的参考资料。datawhalechina/pumpkin-bookgithub.com
第二阶段:进阶学习(3-6个月)(推荐1本书)
在这个阶段,你已经对机器学习有了基本的了解。如果你认真的阅读了ISL并上完了吴恩达的课程,我相信你已经在理论上明白了什么是线性回归,什么是数据压缩,对特征工程以及简单的回归/预测问题有了理论上的基础。这个时候最重要的就是进行实践!
1. Kaggle挑战赛/练习
Kaggle(Your Home for Data Science)在数据分析领域大名鼎鼎,甚至可以说是数据分析第一社区。Kaggle上有很多很好的数据集和挑战赛,你可以尝试这些挑战取得名次,甚至拿到奖金,对于将来找工作也非常有帮助。而且Kaggle的另一大优势是网友会分享他们的经验和看法,你也可以提出问题让大家来帮你提出一些修正方法。
国内也有类似的平台,比如天池大数据竞赛,其他类似的平台还包括DataCastle。
使用Kaggle的目的主要是将技能落在实处,防止练就一身屠龙之技。机器学习最大的幻觉就是觉得自己什么都懂了,但等到真的使用时发现并不奏效,而Kaggle是一个低成本的应用机器学习的机会。
2. Sklearn文档学习
Sklearn(scikit-learn: machine learning in Python)是 Python 上最流行的机器学习/数据科学工具包,上文介绍的Python Machine Learning书中就大量使用 Sklearn 的API。和使用Kaggle的目的一致,学习的Sklearn的文档也是一种实践过程。比较推荐的方法是把主流机器学习模型Sklearn中的例子都看一遍。
Sklearn的文档是少数写的跟教程一样的技术文档,很具有阅读价值。举个简单的例子,假设你想学习Python中使用逻辑回归,就可以参考: Logistic Regression 3-class Classifier
Sklearn的文档不仅提供了练习数据、sklearn的相关代码实例,还提供了可视化图。
3. 周志华《机器学习》
这本书是值得常常翻看的一本书。
在 kaggle 挑战和阅读 Sklearn 文档的过程中你还会时不时的遇到一些新的名词,比如流形学习(manifold learning)等。这个时候你会发现西瓜书真的是一本中级阶段大而全的书籍:)
第三阶段(可选*):深度学习(3-6个月) (推荐1门课程和1本书)
因为深度学习是当下的热点,很多公司都在寻找深度学习人才。虽然深度学习只是机器学习的一个子集,但有兴趣朝这个方向发展的朋友可以在完成以上学习后单独学习一下深度学习。
1. 吴恩达深度学习课程
吴恩达通过Deeplearning.ai和Coursera平台推出了最新系列的五门深度学习课程(deeplearning.ai)。
有条件的朋友可以通过Coursera学习获得证书,最近网易云课堂也上线了这门课的翻译版。如果想要上其中的课程,需要先注册报名深度学习工程师微专业,之后就可以分别点开每门课单独进行学习。
2. Deep Learning - by Ian GoodFellow
深度学习这本书是由当下深度学习领域的几位领军人物所著,包含三大巨头之一的 Bengio,还有教父 Hinton 来作序推荐。这本书的中文本翻译由张志华教授团队负责,在 github 上免费放出了翻译版本。
这本书的阅读建议:为了补充基础可以阅读第1-5章其中也包含了一些数学知识
只关注主流神经网络知识可以阅读6-10章,介绍了DNN/CNN/RNN
需要进一步了解一些调参和应用技巧,推荐阅读11和12章
第13-20章为进阶章节,在入门阶段没有必要阅读。其实比较实际的做法是吴恩达的课程讲到什么概念,你到这本书里面可以阅读一些深入的理论进行概念加深,按章节阅读还是比较耗时耗力的。
第四阶段:深入研究(推荐2本书)
恭喜你!如果你已经完成了上面的计划表,代表你已经有了相当的机器学习能力。这个阶段,最重要的就是不要贪多嚼不烂。如果你浏览知乎,会发现大家都说你必须读《Elements of Statistical Learning》(ESL), 《Machine Learning:A Probabilistic Perspective》(MLAPP)之类的大部头。我承认阅读这样的书会有帮助,但在你有了一定的基础知识后,相信你已经知道自己需要接着做什么了也有了志同道合的朋友,我希望把选择权交还给你,而不是继续推荐成堆的课程和书籍。
当然,如果你希望继续深入的话,中文可以继续阅读周志华老师的《机器学习》和李航老师的《统计学习方法》,英文可以入手《Elements of Statistical Learning》。在这个阶段,重点要形成成体系的知识脉络,切记贪多嚼不烂,切记!
从阅读论文角度来说,订阅Arxiv,关注机器学习的顶级会议,如ICML/NIPS/KDD等,相关的方法在知乎上可以很容易搜索到,不在此赘述。
注: @黄海广 黄海广博士对《统计学习方法》一书中的算法,进行了 python 代码的实现,可作为补充学习资料。fengdu78/lihang-codegithub.com
这篇回答中所推荐的书籍和课程都相对比较经典,同时紧跟时代潮流。
入门阶段我推荐了1门课程和2本书,进阶阶段推荐了1本书,深度学习推荐了1门课程一本书,高级阶段推荐了2本额外书籍。
祝你学习愉快,学有所得~
参考