本人是中西部材料模拟方向PhD,毕业至今两年在化工企业做研发方向的DS。因工作需要看了不少DS/ML方向的资料,包括coursera的公开课,Medium上的博客,和一些参考书。当时找资料时很少有这些资料的整理和分析,因此走了不少弯路。在这里希望把我的经验教训与大家分享,抛砖引玉,与大家一起进步。
分析的公开课和书本内容涵盖了:Machine Learning, Deep Learning, Data Science, Data Visualization等等。具体清单如下:
Coursera (ML / Statistics / Big Data / Data Visualization)
- Machine Learning, by Stanford
- Deep Learning Specialization (5 courses), by deeplearning.ai
- Advanced Machine Learning Specialization (3/7 courses), by National Research University
- Bayesian Statistics, by University of California, Santa Cruz
- Data Visualization and Communication with Tableau, by Duke
- Big Data Integration and Processing, by University of California, Santa Cruz
Books (ML / Statistics)
- Hands-On Machine Learning with SciKit-Learn and TensorFlow
- Python Machine Learning
- Pattern Recognition and Machine Learning (PRML)
- The Elements of Statistical Learning (ESL)
- An Introduction to Statistical Learning (ISL)
- Machine Learning: A Probabilistic Perspective
- Interpretable Machine Learning
Coursera公开课: Machine Learning, by Stanford
主题:Machine Learning
子主题:Regression, Neural Network, Support Vector Machine, K-Means, PCA, System Design, etc.
难度:4/10; 深度:5/10;讲解:8/10;综合推荐程度:10/10
相信对于包括我在内的很多人,Andrew Ng的公开课是ML的入门教材之一。我非常喜欢Andrew的教学,深入浅出,有对概念的图像化理解,也有对数学原理的推导。作业大部分为implement某个具体的算法,非常不错。我很推荐这门课作为ML的入门课。
这门课的缺点在于:由于需要涵盖的宽度很大,在深度方面有所不足。如果你对ML的方法已经非常熟悉,那么这门课对于你的帮助可能不会很大。
Coursera公开课:Deep Learning Specialization, by deeplearning.ai
5 Courses:
- Neural Networks and Deep Learning
- Improving Deep Neural Networks: Hyperparameter tuning, Regularization and Optimization
- Structuring Machine Learning Projects
- Convolutional Neural Networks
- Sequence Models
主题:Machine Learning
子主题:Neural Network
难度:6/10;深度:6/10;讲解:8/10;综合推荐程度:10/10
这门课是Andrew Ng主讲的关于deep learning的公开课系列。由于现在deep learning的领域发展飞快,很多教科书已经跟不上最新的潮流。因此这门公开课系列也成了deep learning入门的最佳资料之一。这门课包括了对不同的neural network的原理讲解和应用分析,非常实用。作业基本是算法的implementation和应用,有一些也非常有趣。强烈推荐。这门公开课的大部分内容也已被Andrew收录在他(正在?)写作的Deep Learning Yearning一书中,可以考虑下载此书作为本课程的浓缩版笔记。
这个系列的缺点是深度不够。因为课程规模所限,遇到复杂模型时的讲解有点语焉不详。后几门课的作业也有些水。然而瑕不掩瑜,这门课仍然是入门deep learning的最佳之一。
Coursera: Advanced Machine Learning Specialization, by National Research University
7 Courses
- Introduction to Deep Learning
- How to Win a Data Science Competition: Learning from Top Kagglers
- Bayesian Methods for Machine Learning
- Practical Reinforcement Learning
- Deep Learning in Computer Vision
- Natural Language Processing
- Addressing LHC Challenges by Machine Learning (project)
注:我只上过前三门
主题:Machine Learning, Data Science
子主题:Deep Learning, Kaggle, Bayesian methods, Reinforcement Learning
难度:8/10;深度:8/10;讲解:2/10;综合推荐程度:5/10
这是俄罗斯National Research University推出的一个“高级”版的课程。我只上过前三门,但也受益匪浅。该系列的特色在于涵盖了其它介绍性入门课程不会涉及的深度内容。第一门deep learning内容和Andrew Ng的课程基本类似。第二门Kaggle强烈推荐!课程内容可以认为是如何综合运用DS/ML的教程。通过一些top Kaggler的讲解,可以学习到如何处理数据,如何应用正确的模型,以及如何改进模型等等,是非常实战的内容。作业包括了编程以及参加一个Kaggle竞赛。第三门课Bayesian Methods涵盖了被大部分ML课程中忽略的贝叶斯方法,数学推导很多,但是能够很大幅度地提升对贝叶斯方法的知识理解,以及对相关machine learning算法的触类旁通。作业包括quiz和编程,难度较大。
缺点是,课程准备相对不足,几位主讲人的讲解也很一般。比如Bayesian methods这门课的讲解实在是很难听懂,经常只顾数学推导而忽略了背后的理解,导致我查看了很多额外的资料才理解了内容。另外Kaggle课包含了一部分只有竞赛才需要的trick (data leakage),像我对这部分并不感兴趣的同学也可以有选择地忽略。总体来说,这系列的课仍然是较高水平的高级教材。
Coursera: Bayesian Statistics, by University of California, Santa Cruz
主题:Statistics, Machine Learning
子主题:Bayesian statistics
难度:3/10;深度:5/10;讲解:8/10;综合推荐程度:7/10
我把这门课作为了Advanced ML课里Bayesian Methods的prerequisite来用,复习了一些贝叶斯统计的概念。内容是数学为主,讲解是白板推导,非常容易follow。作业只有quiz,非常简单。我花了一个周末就过了一遍这门课,适合作为概念的复习或者预习来用。
缺点是深度较浅,也没有直接的machine learning内容。
Coursera: Big Data Integration and Processing, by University of California, Santa Cruz
(Part of the “Big Data Specialization”)
主题:Big Data
难度:5/10;深度:5/10;讲解:7/10;综合推荐程度:5/10
我把这门课作为了快速入门big data知识的课,包括了spark / mapreduce的应用。不过效果一般。这门课的课件和讲解都很不错,内容也涵盖了一般ML课不会触及的big data application。
缺点是这门课单独来说不够系统,不过应该是我没有上整个系列的原因。因此不多评论。如果大家有学习big data推荐的公开课的话欢迎交流
Coursera: Data Visualization and Communication with Tableau, by Duke
(Part of the “Excel to MySQL: Analytic Techniques for Business Specialization”)
主题:Business analytics, Data Visualization
子主题:Tableau
难度:3/10;深度:3/10;讲解:7/10;综合推荐程度:6/10
因为工作需要接触了一下tableau,我就把这门课当作了Tableau的入门课。这门课应用的侧重点偏Business analytics,如果是BA方向的同学应该会觉得很不错。这门课有大量的实战讲解,跟着老师做tableau dashboard,浅显易懂,作为快速入门很赞。
缺点是没有ppt课件,想复习时有点难。而且现在tableau learning大降价到$10/月。这门课的性价比相对于tableau learning也大幅跳水。
Book: Hands-On Machine Learning with SciKit-Learn and TensorFlow
https://www.amazon.com/Hands-Mac … Flow/dp/1491962291/
主题:Machine Learning
子主题:Regression, Classification, Support Vector Machine, Decision Tree, Ensemble methods, K-Means, PCA, Neural Network, Reinforcement Learning, etc.
难度:5/10;深度:6/10;讲解:8/10;综合推荐程度:10/10
这是一本入门的神书!不仅内容涵盖了大部分ML的算法,此书胜在对于python scikit-learn包的实战使用。通过书中的例子,可以快速掌握如何实际应用一个算法,以及对于结果的解析。相对于公开课来说,这本书中的内容更加贴近实际DS工作的所需。更难能可贵的是,书中对于算法原理的讲解相当透彻,课后作业题是许多面试题的原型。
缺点是后半部分对于deep learning的讲解不够具体,比如CNN的部分没有涉及到非常具体的算法,和Andrew Ng的公开课相比有很大差距。另一个缺点是后半部分tensorflow的implementation已经过时。由于keras, tensorflow, pytorch等工具的出现和更新,这部分代码的参考功能已经很低,只能作为学习tensorflow的初级读物使用了。不过总的来说还是非常推荐此书的,可以作为入门以及深度二刷。
补充:刚看到此书的新版本将在十月份上市,暂且不知tensorflow部分更新情况,不过还是期待和推荐一下!
Book: Python Machine Learning
https://www.amazon.com/Python-Ma … Flow/dp/1787125939/
主题:Machine Learning
子主题:Regression, Classification, Support Vector Machine, Decision Tree, Ensemble methods, K-Means, PCA, Neural Network, Model deployment, etc.
难度:4/10;深度:3/10;讲解:7/10;综合推荐程度:5/10
这本书与上一本推荐的hands-on ML非常类似,是通过实战来讲解ML算法的书。较之hands-on ML,此书更偏向具体的例子,有几个project实例,也涵盖了model deployment等其它书很少覆盖的内容。
缺点是内容与hands-on ML比较重复,而且对于原理的讲解不深。而且和hands-on ML一样,后半部分的deep learning代码已基本过时。如果已看过了hands-on ML,那么这本书适合作为查遗补缺使用,不是必看。
Book: Pattern Recognition and Machine Learning (PRML)
http://users.isr.ist.utl.pt/~wur … inger%20%202006.pdf
主题:Machine Learning
子主题:Regression, Classification, Support Vector Machine, Ensemble methods, Neural Network, Inference and Sampling, etc.
难度:8/10;深度:8/10;讲解:8/10;综合推荐程度:8/10
Bishop大神的教科书PRML,适合在入门了基本ML算法和概念之后作为高级教材使用。内容包括了大部分ML经典算法的数学原理和物理解释。对于深度理解某算法的原理非常有帮助。此外,本书还包括了许多公开课和教材不涵盖的Bayesian inference and sampling内容,例如EM算法和latent variable, approximate inference, continuous latent variables等等。通过这些贝叶斯统计相关的概念,推导出ML的经典算法(比如PCA)。这对于想夯实统计根基的同学非常推荐,也能够提高对ML算法更深层次的理解。
缺点是受时代所限,neural network部分较为简单,也不包括目前Computer Vision和Natural Language Processing里使用的许多算法和模型。此外本书不包括python代码,因此不推荐作为入门书。但是作为进阶版教科书,此书是第一梯队。
Book: The Elements of Statistical Learning (ESL)
主题:Machine Learning
子主题:Regression, Classification, Support Vector Machine, Ensemble methods, Neural Network, K-Nearest Neighbors, Unsupervised Learning, etc.
难度:9/10;深度:8/10;讲解:6/10;综合推荐程度:7/10
又是一本大神级的教科书,涵盖了大部分ML的算法原理的讲解。这本书推导ML算法的角度和公开课非常不同。例如通过两大章节的basis expansions and regularizations + kernel smoothing才引出SVM。阅读之后,虽然不能完全掌握其精髓,但仍有茅塞顿开之感。尤其推荐第7章Model Assessment and Selections,阅读之后感觉不同的ML方法不再是割裂开来的,而是有融会贯通之意。
缺点是难度非常大,数学推导较多,即使相较于PRML也是较难阅读的一类。但不巧的是此书行文逻辑又与大部分其它教科书不一样,因此也很难单独阅读某一章节。可以试着快速翻阅此书了解作者对ML的解构思路,第二遍再找感兴趣的章节仔细翻阅。相信一定会大有裨益。
Book: An Introduction to Statistical Learning (ISL)
http://www-bcf.usc.edu/~gareth/ISL/ISLR%20Seventh%20Printing.pdf
主题:Machine Learning
子主题:Regression, Classification, Support Vector Machine, Decision Tree, Ensemble methods, Unsupervised Learning, etc.
难度:8/10;深度:8/10;讲解:8/10;综合推荐程度:8/10
此书通过统计概率的角度来理解ML算法,涵盖了大部分非deep learning的ML算法。哪怕是阅读了前几章节的linear regression and classification,也能够对如此简单的算法有更深的理解。另外此书的章节是按照常用的ML算法来划分,因此可以拿出来单独阅读某一章节。我也非常喜欢此书中不少算法之间相互类比的内容。此书中有不少R的代码,不过因为我是python用户,因此这部分留待读者评论。
缺点是涵盖的内容较少,只有传统的ML算法,不包括deep learning的内容。
Book: Machine Learning: A Probabilistic Perspective
https://doc.lagout.org/science/A … 202012-08-24%5D.pdf
主题:Machine Learning, Bayesian statistics
子主题:Bayesian statistics, Regression, Mixture Models, EM algorithm, kernel methods, Gaussian Processes
难度:7/10;深度:7/10;讲解:7/10;综合推荐程度:7/10
本书的内容较为不同,包括了许多从贝叶斯统计角度推导出来的ML算法,包括regression, mixture models, kernel methods, Gaussian Processes等等。本书对于想要理解贝叶斯统计在ML中的应用的同学会非常有帮助,相当于是ML算法的另一种解释。另外本书也包括了例如Gaussian Processes这样在其它教科书中没有包括的内容,有助于提升知识的完整性。
缺点是并不包括常见的ML算法,对于deep learning也基本没有涉及。本书也是理论推导为主,对于实战应用的借鉴较少。
Book: Interpretable Machine Learning
主题:Machine Learning Interpretation
难度:5/10;深度:6/10;讲解:7/10;综合推荐程度:7/10
本书介绍了如何解读ML的算法与结果,也是该主题较少的资源之一,因此推荐有相关需要的同学们阅读。这本书通过具体的例子,介绍了针对特定ML方法的解读(比如决策树),也介绍了普适性的ML结果解读(通过不同的预测结果)。非常适合DS工作中对于模型的理解,错误分析,以及模型的进一步改进。
缺点是不包括ML算法的讲解。针对特定ML方法的解读章节中涵盖的ML方法也很少(可能大部分ML方法还是太黑箱了吧。。。)。不过这本书新颖的角度还是让我非常推荐此书。
本人还算是DS新人,对于ML的理解也非常粗浅。以上的资料整理和分析让各位大神们见笑了,欢迎批评指正!