原文:Learning Path : Your mentor to become a machine learning expert
如今,机器学习在网络上已经有了过剩的资源,并且发展十分迅猛。每次找到的资料都会一大堆的专业术语,大部分人会迷失在纷杂的学习资料中。当然,这并不是全部。你不经历磨练,就根本无法驾驭机器学习。你必须花上数小时来体会在工程中的细微差别,其重要性和深远影响都对你十分有用。
通过这个学习路径,我们希望提供以上问题的答案。我们故意在这个学习路径中加入了很多项目。你不努力就不会成为机器学习大师。但是一旦你做了就会成为具有先进思想的人。
前面基本就是在画大饼,翻译的不好,不看也没关系
鉴于这是一个比较复杂的任务,我们建议你严格按照顺序来进行学习。仅在你很了解一个主题时,才允许跳过。
热身--机器学习有多有用
如果你是一个完完全全的初学者,这里有一个Jeremy Howard的演讲来理解机器学习——how machine learning is changing this world. Jeremy谈了很多有关机械学习和深度学习的应用。并讨论了他们对于世界将会产生的影响。
如果还没理解,看下这个相对短小一点的视频training a machine to play Super Mario.
现在是不是对机器学习的未来感到无比激动了,来看下我们整理的学习路径吧。
Step 0: R / Python基础
其实有很多语言具有机器学习的能力,并且已经有很多围绕这些语言进行的开发工作。但是现在R/ Python是最常用的两种语言。在学习机器学习之前,我建议你挑选一种语言并掌握它,以便你后续能集中精力在机器学习本身上。
a) Learning Path on R: Step 0 to Step 2
b) Learning Path on Python: Step 0 to Step 2
其他语言也可以考虑: Scala, Go / Julia
Step 1: 学习描述和推理性统计学
我们需要重新学习统计学。在你开始机器学习开发之前,掌握描述和推理性统计十分重要。优达学城提供了额免费的学习课程:descriptive statistics and Inferential statistics. 两个课程都是使用Excel来进行开发。就算你已经了解了他们,这些课也能让你提升不少。
作业:你可以使用你选择的语言来进行这个任务。你可以引用下面列出的库和方法:
R: Stats
Python: Scipy, Numpy, Pandas
必读: Difference between machine learning and statistical modeling?
Step 2: Data Exploration / Cleaning / Preparation
好的机器学习专家和普通机器学习研究者的区别在于,在原始数据阶段的功能工程和清洗数据的质量。你在这里花的时间越长,质量就越好。这个阶段将花费你大量的时间。你可以通过以下的文献查看数据探索不统计阶段的区别:
- Variable Identification, Univariate and Multivariate analysis
- Missing values treatment
- Outlier treatment
- Feature Engineering
你也可以通过R或者Python来进行数据探索工作:
考试/作业:
- 查看Kaggle上的泰坦尼克生还者问题,做出一系列的假设并清洗数据,建立新的数据特征。想一想推定缺失的年龄数据的最好的办法是什么?
- 同样的,查看Bike sharing demand forecasting problem这个问题,并重复上述步骤。
Step 3: 机器学习简介
你现在算是可以入门机器学习了。有很多资料都可以作为入门教材,我会建议你根据自己学习的方式在以下两种方法中二选一:
- Option1:如果你是需要手把手的讲解,一次一小点,你应该从这里开始: Machine learning course from Andrew Ng,这个讲解比较适合初学者而且容易理解。吴恩达教授十分擅长将复杂的概念平滑地介绍给你。这个课程涵盖了所有基本的算法并且介绍了一些比较高级的主题,像神经网络。推荐系统这类的应用通过使用Map Reduce进行对大数据量的机器学习来获得。他选择使用Octave / MATLAB来代替普通的R/Python,一旦学完,你就可以开始做Option2里的作业了。
- Option2:如果你十分具有自学精神,喜欢挑战和面对一些比较难得课题,你应该去选择:Learning form Data course by Prof. Yaser Abu-Mostafa。这个课程会带给你基于机器学习的各种概念的十分惊人的体验,但是请注意这些课程有比较难的数学挑战,并且带了很多有关机器学习的前沿理论(像VC维度)。而且这个课程还需要具有更多的编程经验因此会感觉它更高端。这个课也附带了很多课下作业。
现在你已经明白了很多算法和技术。这时候我们看看在R或者Python中可以使用的一些库,你可以参考step-6中的 R (additionally, ML Algorithms in R) and Python来探索这些包和选项。
Step4:参加Kaggle中的比赛
现在,你已经具备了所有来完成Kaggle知识竞赛的工具。这些竞赛里面有比较简单的,也有具有奖金的。你可以选择一系列相关的资源来开始你的数据分析旅程。下面这些事现在正在进行中比赛:
[Titanic: Machine Learning from Disaster]
San Francisco Crime Classification
Must Read: How do I start my journey on Kaggle?
Step5: 高级机器学习
这时候你应该已经学习了非常多的关于机器学习的技术,是时候探索一下高级的机器学习技术,来了解不同的数据构造,比如深度学习和大数据下的机器学习。
DeepLearning
你了解深度学习吗? 这里是一个关于深度学习的简要说明, 这里具有更多关于深度学习的细节。下面是一些关于深度学习的资源链接:
- 最具综合性的资源链接应该是 deeplearning.net,你可以找到几乎所有的东西——演讲,数据集,挑战,教程。
- 另一个 course from Geoff Hinton可以试着理解神经网络。
- 模式识别,Python(Resource 1, Resource 2, Resource 3) and R (Resource 1)
- 文本挖掘,Python (Resource) and R (Resource 1 , Resource 2)
组合建模
这是专家和普通从业者的一个区别,组合可以将很多能力加入你的模型中,而且在Kaggle比赛中是十分有用的技术。这里有一个链接可以了解:best guide on emsemble modeling
大数据下的机器学习
正如你所知道的,数据正已指数形式增长,但是如果你不深入研究的话,原始数据又没什么用。机器学习其实就是从数据中学习,从可用的数据集中获取洞察能力和模式识别的能力。现在已经有很多使用机器学习算法的应用程序,比如“垃圾邮件检测”,“web文档分类”,“诈骗预测”,“推荐系统”等等。下面是一些大数据下进行机器学习的教程:
- Scalable Machine Learning
- Packages for Big Data in Python ( Pydoop, PyMongo) and R (Resource1, Resource2)
Step6:参与Kaggle主流比赛
现在你具有来了绝大多数的技术和统计学能力。是时候组队参与比赛来从这些数据科学家中学点什么。Kaggle 是一个我们活动,约定,竞争的平台。数据科学家们很热衷于他们的排名和模型的性能。去吧,尽你所能投入到一个正在进行的Kaggle比赛中,祝你好运!
可选步骤:文本挖掘和数据库
如果你想将机器学习应用于文本挖掘,你可以查看这个教程: clean text data and build models on it.你也可以查看下面这些Kaggle的比赛:
有意思的部分
现在你已经知道了如何成为一个机器学习从业者。这里是一个仿真训练:
genetic algorithm based robot would learn walking
一些严肃的部分
现在你已经知道了一些机器学习的潜在能力,想象它对当今世界的影响。Jeremy的演讲提到了一些。下面的这些文章从不同的观点讲述了这个演变:part 1 & part 2
希望你能喜欢这个学习路径,并且能使用机器学习影响我们的生活。如果有任何意见或建议,可以在下发评论区评论。
原文:Learning Path : Your mentor to become a machine learning expert