专栏名称: Python开发者
人生苦短,我用 Python。伯乐在线旗下账号「Python开发者」分享 Python 相关的技术文章、工具资源、精选课程、热点资讯等。
目录
相关文章推荐
Python爱好者社区  ·  特朗普上台,第一刀再次扎在了留学生身上。。。 ·  3 天前  
Python爱好者社区  ·  张一鸣,成为中国首富 ·  5 天前  
Python爱好者社区  ·  两天私活,3w到手 ·  4 天前  
Python爱好者社区  ·  最近招了个浑身软肋的优质员工:房贷150万, ... ·  1 周前  
51好读  ›  专栏  ›  Python开发者

为期 1 周的 ML 入门指南

Python开发者  · 公众号  · Python  · 2017-03-27 21:27

正文

(点击上方蓝字,快速关注我们)


译文:伯乐在线专栏作者 - 心灵是一棵开花的树

英文:Per Harald Borgen

如有好文章投稿,请点击 → 这里了解详情

如需转载,发送「转载」二字查看说明


在门外汉看来,机器学习(Machine Learing,ML)入门是个不可完成的任务。


如果你选错了方向,确实就是不可能的了。


然而,在我学习机器学习的基本知识一周后,发现入门比我想象的容易。


本文旨在给予那些对机器学习有兴趣的人一些入门指南,这个指南来自我为期一周的学习经验。


背景


在我开始这一周的机器学习之前,我已经阅读过一些相关的文章了, 并且学习了一半吴恩达(Andrew Ng)在 Coursera 上的机器学习课程,以及一些其他的理论课程。所以我对机器学习有些基本的概念,但我仍然我不能将我的知识转换为代码,这是我想要改变的。


我想在一周学习的最后阶段能够用 ML 解决问题,尽管这意味着会跳过很多基础知识,我采取了自上而下的学习方法,而不是自下而上。


在 Hacker News 上咨询之后,我得出的结论是 Python 的 Scikit Learn 库是最适合入门的。这个库提供了丰富的算法,将实际的机器学习问题减少到几行代码。


星期一:学习一些实例


我的学习之旅从查找关于 Scikit Learn 的视频教程开始。我最后选择了 Sentdex 关于使用ML投资股票的教程,这个教程给了我继续学习的必备知识。



Sentdex 教程的好处是,教师会引导你一步步去收集数据。随着学习的深入,你会发现获取和清理数据是比真正的机器学习更耗时的。因此,编写脚本抓取文件或网络中的数据的能力是一个ML极客的必备技能。


我后来又重看了几个视频,以解决之前我不理解的问题。我建议你也这样做。


但是,如果你已经知道如何从网站抓取数据了,那本教程可能不是很适合你,因为许多视频都是关于数据抓取的。如果是这样的话, Udacity的机器学习教程可能更适合你。


星期二:将ML应用到实际问题


星期二我想看看是否能用我所学解决一个实际问题。因为另一个合作编程的伙伴正在参加英格兰银行数据可视化大赛,所以我与他一起查看了该银行发布的数据。其中最有趣的是他们的家庭调查数据,这是该银行对数千户家庭进行的关于金钱方面的年度调查。


我们决定解决的问题如下:


给定一个人的教育水平,年龄和收入信息,计算机可否预测其性别?


我观察这个数据集后,花了几个小时清理数据,并使用 Scikit Learn map 去找一个适合该问题的算法。



最后我们预测的成功率达到了 63%,这并不令人震撼。但是至少比掷硬币的准确率(50%)高一些。


最后的结果是激励你的动力,所以我建议一旦你会使用 Scikit Learn 了,就自己来动手做一做。


你意识到你可以使用 ML 来解决现实生活中的问题的时刻是很一个关键的时刻。


星期三:从头开始


在玩转各种 Scikit Learn 模块后,我决定尝试从头开始写一个线性回归算法。


我想这样做是因为我一直觉得我真的不明白后台发生了什么。


幸运的是,coursera 课程详细介绍了几种算法的工作原理,这在很大程度上是有用的。更具体地说,它描述了使用具有梯度下降的线性回归的最底层的概念。



这肯定是最高效的学习技巧,因为它迫使你了解后台的一些细节。 我强烈建议你也这么做。


我计划在继续学习的过程中重写我自己实现的一些更复杂的算法,但我想在学会 Scikit Learn 中相应的算法之后再做。


星期四:开始参加竞赛


星期四,我开始研究 Kaggle 的入门教程。Kaggle 是一个机器学习的竞赛平台,你可以在其中提交公司或组织发布的问题的解决方案。


我建议你在对机器学习有一些理论和实践经验后再尝试 Kaggle。你需要这些知识才能开始使用 Kaggle,否则你可能没什么收获,反而会觉得沮丧。



“Bag of Words”教程指导你完成参赛资料提交的每个步骤,并会给你一个简短而令人兴奋的有关自然语言处理(NLP)的介绍。看完教程之后,我对 NLP 的兴趣大大增加。


星期五:回到学校


星期五, 我继续 Kaggle 教程的学习,并开始看 Udacity 的机器学习简介。我现在的学习很愉快。



它比 Coursera 的课程简单,因为它不会深入讲算法的具体内容。但它很实用,因为它会讲如何使用 Scikit Learn,这比 Coursera 课程中的告诉你用 Octave 从头开始实现算法更易于应用到实际问题。


未来之路


这一周的学习不仅是好玩,更使我认识到了机器学习在社会中的作用。我越了解它,就越明白他可以解决哪些领域的问题。


如果你对机器学习感兴趣,我强烈建议你花几天或几晚上的时间深入了解一下。


如果你还没有准备好面对复杂难懂的原理,请选择一个自上而下的方法并尽快从解决实际问题开始吧。


祝你好运!


感谢阅读!我叫 Per Borgen,主要写一些入门文章。


如果你有任何问题或者想与我联系,请通过 Twitter, GitHub或者邮件([email protected])随时与我联系。


看完本文有收获?请转发分享给更多人

关注「大数据与机器学习文摘」,成为Top 1