4决策树,5神经网络,6支持向量机,7贝叶斯分类器,8集成学习,9聚类,10降维与度量学习,11特征选择与稀疏学习,12计算学习理论,13半监督学习,14概率图模型,15规则学习,16强化学习
推荐书籍
链接:https://www.zhihu.com/question/20691338/answer/102249162
来源:知乎
著作权归作者所有,转载请联系作者获得授权。
这几年,机器学习绝对是计算机领域最热门的话题和方向。笔者不属于专门研究机器学习,但是平时的工作会经常用到一些相关的算法。因此,对于机器学习也仅仅是入门的水平。但是我想也正是因为我只是一个入门汉,所以能够从我们入门者的角度来总结如何入门,希望对还在门外的同学有一些帮助。
数 学
很多人翻看任何一本机器学习的书,看到一推的数学公式就开始打退堂鼓了。开始搜索,提问“机器学习需要哪些数学知识?”然后得到的结果可能会是“矩阵分析,概率论,优化设计……”而且还会有大量的人推荐一些例如“All of Statistics”,“Convex Optimation”等等外文教材。至少我当时面对的情况就是这样的。这种情况很可能后面会朝以下画风发展。
看到上述推荐的那些经典教材,你像看待圣经一样看待他们。抱着一种学会了那些课,我再看机器学习的书简直就会是探囊取物的想法,你下载了巨多相关材料。但是,慢慢你会发现,除了把他们下载了下来,你并没有任何的进步。你并没有完完整整的看完一本,你并没有在机器学习方面卓越超群。
入门阶段真的需要这么多的数学储备吗?未必。
入门阶段我感觉你只要有普通工科专业大一大二那几门基础数学课“线性代数”,“高数”,“概率论与数理统计”就可以让你入门了。
所以,千万别被机器学习中的数学所吓倒而不知道该如何下手。
只要有上述的几门课的基础,你完全可以看懂很大一部分机器学习算法。
程序语言
机器学习入门最佳的方法其实就是理论和代码一起学习。一边看相应的理论推导,一边看并且实践经典代码。所以,为了更快入门,我推荐你最好能够懂点MATLAB或者是Python语言。
Matlab和Python说实话做高端的机器学习肯定是不推荐的,但是如果你想的是机器学习快速入门,那这两门语言绝对是绝佳选择。
第一步
有了上述基础后,你可以开始看点机器学习的相关内容了。我看很多人推荐elements of machine learning。我想说,你想让一个基础为零的人去看这本书,真的合适吗???
所以,我推荐的是Machine Learning in action,(这里面的完成语言为Python)这是英文版本的。当然如果你觉得英文对你是一个完全过不去的坎,(虽然我建议做技术的人都必须至少要看得懂英文)现在有中文版本,叫“机器学习实践”。
这本书用尽量少的公式把机器学习的基本算法都过了一遍,而且还讲得很清楚,更为重要的是他将公式和代码结合了起来。因此,你的机器学习并没有那么的抽象了,你知道算法里的公式如何的转化为代码。
所以,第一步,你可以耐着性子将这本书看完。反正我当时,把书中的代码自己敲了一次,虽然代码有的下载,你也可以选择只是把代码看懂完事。但我还是建议,自己敲一次,运行运行,这样你会得到不一样的体会。
第二步
学习Coursera上面Andrew Ng老师的machine learning的课程。这门课造福了众多机器学习的入门者,不仅仅是因为课程全面,内容由浅入深。更加重要的是这门课程每次课都有课堂作业,作业不需要你写出来所有的代码,但是关键代码要你写出来,而且还会教你如何调试代码。
初学者学这门课的时候很可能会买有耐心,又是英文的,又有进度要求,又有作业。没关系,你可以把视频下载下来(很多网盘里都有下载好的视频),然后慢慢的去啃。作业也是,可能你自己不能一口气写出来,没关系,在自己做了大量尝试后,去Github上面下载一些别人写好的代码看一看,找找自己的问题到底出在了哪里。
总之,一定要耐着性子过一遍甚至是几面这个课程。
第三步
这时候你已经对机器学习很多简单的算法比较清楚了,但是可能还没有一种大的全局观。所以,我建议大家可以看看这两本中文教材。周志华老师的西瓜书《机器学习》和李航老师的《统计学习方法》,这两本书都是作者花了大量心思编写的,也是在中国众多科技书籍中难得的两本佳作。
英文书籍,可以推荐《Patten Recognition and Machine Learning》,《Elementsof Statistical Learning》(但是这本书难度比较大,如果你有足够的耐心,可以慢慢啃,多次的啃。相信每次都会有不同的收获。我自己已经看了好几次,但是确实每次都没有完全看完,但是目前我遇到很多问题,我去翻这本书,还是能找到很多答案,尤其是我做稀疏相关的工作,里面的相关内容讲解非常清楚。)
第四步
这时候,机器学习你已经可以说大概入门了。后面的事情,就得根据你的需求来制定相关的学习路线。
比如,做大数据分析的,得去学学spark,Hadoop等计算框架;
另外,图模型,深度学习……等等内容,都是一些方向。
自然语言处理、图像识别、语音识别等等也是一些应用方向,更有大量的领域知识需要结合。
在前沿部分和第一到第三步的内容,如果你能按照这几步走下来,入门是肯定可以的。至于后面的机器学习精通部分,我也只能说:Good Luck and Have Fun