

导语:很多同学在入门机器学习的时候,走了很多弯路,为了避免“从入门到放弃”的悲剧再次上演,知乎数据分析话题优秀答主Alex Cui从他自身的数据分析师成长经历出发,为我们展现了一张系统的机器学习路线图,让你在这条路上走得更快。(文末有福利)
文/ Alex Cui 知乎数据分析优秀答主
编辑/ 小龙虾
我是学城市与交通规划专业出身,参加数学建模竞赛也主要是因为兴趣爱好。正因为本科参加竞赛拿了国二和校赛一等奖,在保研的时候得到了加分,也受到了导师的青睐。研究生三年都是做数据挖掘。找工作的时候,也因这个特长拿了很多Offer,现在公司的大数据研发中心作为骨干研究员之一。
我个人学习数学建模和机器学习的过程可以说是比较艰辛的,也走了很多弯路。就拿学Python来说,翻那本《Python从入门到精通》,真的是扫了一遍,什么都没记住。主要原因还是没有实际项目练习,也没人交流和指导,当时也没有知识体系的意识,缺乏一个全景图。后来加入到数学建模协会,在社群里经常讨论,不懂就问,确实好了很多。
这是我最近学习了机器学习之后,在项目上,利用某市的手机信令数据分析的城市道路网拥挤情况,越红表示越拥堵。

为了能让大家少走弯路,这里我把自己总结的机器学习知识体系大概罗列一下,我分基本篇、进阶篇以及高级篇来讲。

需要一定的数理知识和编程基础。其中数理知识是大学一、二年级的必修课。比如微积分,线性代数、概率与统计。很多同学在大学线性代数和概率与统计都没学好,线性代数本质是研究向量,多维模型的多维参数一定是要由向量来表示的,并且很多空间问题都可以用向量理念来抽象出来。概率论是很多机器学习算法的基础,其实人在考虑问题的时候,不也是在权衡各种可能性嘛,像贝叶斯算法、Logit算法、神经网络算法其实就是机器脑在基于概率来权衡判断。
如果这几门你大学就没学明白,那我其实不建议你继续自学了,非常耗时间,最好能找一些高人指导一下,或者去听一些网络课程。不得不说,很多大学的基础学科老师科研可能还可以,讲课是真烂,也许你听一些好的网络公开课,还是能学懂的。
编程基础方面,很多工科生也是学过一些编程语言的,直接上手Python应该没问题,看一眼Python入门书,或者去Codecademy跟一个Python系列就学会了,这里是链接:www.codecademy.com
了解统计分析、机器学习基本概念;学习相关算法,机器学习算法可以分为两类,监督类算法(K近邻、回归、SVM、决策树、朴素贝叶斯、BP神经网络)和非监督类算法(聚类、Apriori、FP-growth),难度会比较大,需要一点点磨。
机器学习语言肯定就是Python了,这个不用争了,如果涉及到可视化可以试试Tableau,这个在校生凭借学生证可以在官网申请免费试用一年哦。
主要在于实践了,要多参加各种项目,包括一些开源项目。遇到问题要能读相关高质量的中、英文论文。
其实在基础和进阶的过程中也要配合着项目练习才是最好。很多人都说读完书没有用,是的,不去用就学不透。你要在实践中加以运用才能真正学会。美国国家训练室做过一个比较研究,那么可以看到,转变学习方式,变被动为主动才能留存最多的知识。

如果你真的想成为一名人工智能人才,必须要严格自律,拿出很大一块时间投入到学习中。对于那些自学能力不强、自律不强的,我不建议大家自学。你会陷入低水平均衡陷阱,所谓低水平陷阱就是长时间停留在入门阶段,只了解一些概念,无法有体系性思考能力,去解决实际问题。这非常浪费时间。学机器学习就要学得透彻,懂点皮毛一点用没有。
这两年人工智能非常热,行业变化也很快,新技术、新应用很多,我利用业余时间也进一步在学习机器学习知识。从我学习和试听过的几家课程来看,国内的授课内容比较空,不贴近实战,师资力量也很有限。
国外的三大课程网站Coursera、Udacity、edX的机器学习课程我也都找来学习过,其中Coursera的创始人吴恩达是人工领域顶尖的科学家,他的机器学习课程我试听了前几期,发现整体比较基础,还没完全针对中国市场的需求,比较难能完全投入实战,不过60美元还蛮划算的。课程链接:https://www.coursera.org/learn/machine-learning

edX还没有完全进入中国市场,连网站还是全英文的。在人工智能尤其是机器学习领域还没有相关课程,只有数据分析入门级课程。他们的链接:
https://www.edx.org/course/subject/data-analysis-statistics

Udacity优达学城的机器学习课程整体比较全面,分成了基础和进阶两个类型,我们公司就采购了他的课程,几个人用一个账号还挺划算的。现在还没全学完,总的来看里面的课程设置很贴近实战,内容也非常系统,不愧是谷歌工程师设计的课程。
还有就是优达提供了一个非常好的学习社群,大家可以讨论,发现里面高手还是很多的,配合地实战项目,老师还会一对一的给改代码教学。

像我平时工作比较忙,一般都是抽早上、晚上的零碎时间学习的,课程里3分钟左右时间讲明白一个知识点,不需要整段整段的看,视频也可以下载到手机里,地铁上看。我大概用了15周时间,学完了基础篇,高阶篇也看了一半。不过说实话,里面的实战对于没有良好编程基础的还是会有难度的,学习可能要更长一些。

我觉得做事情一定要考虑时间成本,尤其是你真想从事的行业。机器学习属于非常高深的知识,如果没有好的引导或者只是自学,会浪费大量的时间。这几个课程虽然有点贵,但是你好好学,找到华为、滴滴、阿里这些大厂的好工作,一个月的工资都够买好几套教程了,要考虑机会成本。
有想和本文作者进一步沟通请教的粉丝,请移步作者知乎主页:https://www.zhihu.com/people/alex-cui/posts
扫码关注优达学城订阅号
回复关键词「PY小抄」
获取超实用的“Python知识点小抄”
对数据分析、机器学习都非常实用

range函数


忙着学习呢,没时间焦虑。点击 [阅读原文] ,2018年,给自己一个成为Google认证机器学习工程师的机会!