机器学习自学指南

机器学习自学指南

提醒:
如果是相关领域的在职人员,或者计算机专业大学生比较适合自学后在这方面发展。
如果没有压力(比如快失业了),或者现实的动力(工作中用的到),基本上是坚持不下来的。

Step0:准备阶段
1.英语阅读水平达到大学英语4级。
2.高数大致掌握,关键概念经查阅能随时记忆起来。
3.编程技能达到计算机2级水准。
这些都是大学期间应该积累的技能,如果不符合的话。。。可以凑合先学着,慢慢补。


Step1:看视频学习,这一阶段的目标是对机器学习的理论有初步的了解。
1.machine learning-Andrew Ng
百度网盘地址:pan.baidu.com/s/1gfzJle
在线学习地址:Machine Learning - Stanford University | Coursera
说明:Coursera[1]是一个非常知名的公开课网站,Andrew Ng讲授的的“machine learning”课程可以说是它的成名作。我给的离线资源里Andrew Ng的课程只有英文字幕,在线学习有作业什么的,学习更加系统。
2.机器学习基石/技法-林轩田
百度网盘地址:pan.baidu.com/s/17qGVLl
在线学习地址:
说明:这个资源是中文讲授的。之前在coursera上有,现在貌似找不到了。林轩田老师的讲解通俗易懂,技法课程难一点,可以结合step2进行学习。看的时候记得记笔记,网上也搜的到网友记的笔记,详细的学习方法就不多谈了。


Step2:这一阶段是结合step1学习的理论基础,做一些基于python的动手练习,另外给出了两本参考书,可以阅读加深认识。
1.python教程-廖雪峰的官方网站
地址:Python教程
说明:廖雪峰的教程质量很好。没有必要全看完,大概了解python的基础语法即可,这步是为下面的练习做准备。
2.《机器学习实战》
豆瓣地址:机器学习实战 (豆瓣)
说明:这本书基于python对一些主要的机器学习算法进行了代码实现。一定要照着敲一遍。
3.《机器学习》-周志华
豆瓣地址:机器学习 (豆瓣)
说明:这本书是中文里最好的机器学习教科书了,说明很清晰而且全面。但是算法的推导过程很简略以至于完全看不懂。建议大致看一遍,算法的推导结合网上的博客和其他教程进行理解。
4.《统计学习方法》-李航
豆瓣地址:统计学习方法 (豆瓣)
说明:我也没看完。。但是据说很好,都是各种算法的推导过程。


Step3:这一阶段是进行实战演练,方法是在机器学习竞赛网站上结合实际案例进行练习。我本人也在step3进行了没多久,祝我好运。
1.《利用Python进行数据分析》
豆瓣地址:利用Python进行数据分析 (豆瓣)
说明:numpy与pandas是python进行处理数据的两个关键库。这本书讲解了这两个库的使用方法。是实战前的准备步骤。
2.kaggle
地址:Competitions | Kaggle
说明:kaggle是一个机器学习竞赛网站。除了在进行中的,有悬赏金的比赛,也有入门的练习赛。使用方法见大数据竞赛平台--Kaggle 入门
3.阿里天池大数据竞赛
地址:天池大数据科研平台-打造“数据众智、众创”第一平台
说明:阿里办的,性质同kaggle。
4.data castle
地址:pkbigdata.com/
说明:中国版kaggle


step4:当你在step3取得了一定成绩。比如在某个比赛中获得了还不错的名次,就可以说具有还不错的机器学习能力了。这时候可以找一些实习干干,实习生岗位要求低一些,通过它可以累积相关领域的实践知识,是正式工作前的跳板。如果实力很强的话,可以直接找工作哦。
1.准备面试
大部分公司招聘实习生/员工时不仅会考察你的机器学习知识,如果希望找实习更顺利,可以参考我的找工作指南[2]做准备。一般的话,需要补习:算法,计算机基础知识。充分准备需要几个月的学习时间。
有的公司还会希望你掌握大数据工具的使用,学习方法我在“补充内容”中列出来了。
2.寻找实习机会
拉勾网[3]上搜索数据挖掘相关的实习即可
3.触宝数据团队欢迎你
校招:触宝2017校园招聘
社招:拉勾网搜索“触宝”
内推:发送简历至我的邮箱87384204@qq.com
知乎,触宝的工作环境如何?:触宝的工作环境如何? - 知乎


补充内容:

为什么要学习python?好像有R语言,java什么的?

看下面这张图,R,python,scala能够处理的数据量依次增大,应用领域偏重逐渐从科研移动到工业界。未来你可以考虑三门语言都学。目前python是在个人研究与企业应用中都非常广泛的一门编程语言,在入门阶段只学习它就可以了,其他的语言最好用得到的时候再学习。

另外编程语言的本质是工具,工具的学习一定要在实践中渐进的进行,每次只学用的到的部分,这样是效率最高的学习方法。很多人不去写代码,只看一本语言指南。脱离了编程实践,这样是不可能学的好的。


我在比赛中碰到了一份5GB的数据,根本打不开,怎么办?

这个时候就得用到大数据技术了,简单的说你需要:

  1. 拥有多台计算机。
  2. 在它们上面安装linux操作系统。确保它们在同一个网络中。
  3. 在它们上分别安装hadoop,spark,并配置好。
  4. 使用spark操作数据。


这里的2,3,4步。网络上都有相关的教程,第2步建议参考《鸟哥的linux私房菜》[4],第3、4步建议参考hadoop[5]与spark[6]的官方文档以及相关书籍/博客。
这里涉及到的学习内容非常多。。。如果不是计算机专业的同学,几乎就是不可能完成的任务了。最好能找一个会的人手把手的指导。
好处在于,通过这个过程,你能学到很多大数据技术的操作方法,这是找实习/工作中的一个亮点。
坏处在于,搭建与管理大数据平台严格来说是大数据工程师的技能,与机器学习方向无关。而且这个过程非常困难。


其他:
不同的机器学习算法往往共享一些基本的概念,如特征(feature),标签(label),训练集,测试集等。在这些概念的基础上,学习一个新算法很快,可能一下午就能读懂一个算法的原理。这时候会很有成就感,不过step2时不要急于学习各种算法,把学习的重心转移到对算法的实践上。最宝贵最实用的知识都是实践中得来的,脱离实践只看算法的原理过几天还是忘光光,而且不会掌握解决实际问题的能力。








1. Coursera | Online Courses From Top Universities. Join for Free

2. 2017校招总结 如何准备计算机技术岗的应聘-夏路

3. 拉勾网-最专业的互联网招聘平台_找工作_招聘_人才网_求职

4.鸟哥的Linux私房菜 (豆瓣)

5.Welcome to Apache™ Hadoop®!

6. Overview - Spark 2.1.0 Documentation

编辑于 2018-12-22 17:05