一周机器学习
从外部来看,进入机器学习(ml)领域似乎是一项无法完成的任务。
如果你从错误的角度攻击它,那肯定是可以的。
然而,在花了一周时间学习该主题的基础知识之后,我发现它比我预想的要容易得多。
本文旨在为有兴趣进入机器学习领域的其他人提供一份入门路线图,借鉴我在入门周的经验。
背景
在机器学习周开始之前,我已经阅读了一段时间的相关资料,并且学完了吴恩达在Coursera上一半的课程,以及其他一些理论课程。所以我对机器学习的概念性理解略有了解,但我完全无法将我的知识转化为代码。这正是我想要改变的。
我希望能够在本周末之前解决机器学习问题,即使这意味着跳过很多基础知识,并采用自上而下的方法,而不是自下而上的方法。
在Hacker News 上咨询后,我得出结论:Python 的 Scikit Learn 模块是最好的起点。该模块提供了丰富的算法可供选择,将实际的机器学习简化为几行代码。
星期一:学习一些实用知识
这周我开始寻找涉及 Scikit Learn 的视频教程。最终,我找到了Sentdex关于如何使用机器学习进行股票投资的教程,这为我提供了进入下一步所需的知识。
Sentdex 教程的优点在于,讲师会带你完成收集数据的所有步骤。随着学习的深入,你会意识到获取和清理数据可能比实际进行机器学习耗时得多。因此,对于有志于成为机器学习极客的人来说,编写脚本从文件或网页中抓取数据的能力至关重要。
后来我又重新观看了几个视频,以便在我遇到问题时能够得到帮助,所以我建议你也这样做。
但是,如果你已经知道如何从网站抓取数据,那么本教程可能不太适合你,因为很多视频都是围绕数据获取展开的。在这种情况下,Udacity 的机器学习入门课程或许是一个更好的起点。
星期二:将其应用于实际问题
周二,我想看看我能否用学到的知识来解决一个实际问题。当时我所在的编程合作社的另一位开发人员正在参加英格兰银行的数据可视化竞赛,于是我和他一起查看了银行发布的数据集。最有趣的数据是他们的家庭调查。这是银行每年对数千户家庭进行的一项与金钱相关的调查。
我们决定解决的问题如下:
给定一个人的教育水平、年龄和收入,计算机可以预测其性别吗?
我研究了数据集,花了几个小时清理数据,并使用Scikit Learn 地图找到了适合该问题的算法。
我们最终的成功率约为 63%,这实在算不上令人印象深刻。但机器的猜测能力至少比抛硬币要好一些,因为抛硬币的成功率只有 50%。
看到结果就像是给你动力的燃料,所以一旦你掌握了如何使用 Scikit Learn 的基本知识,我建议你亲自做这件事。
当你意识到可以开始使用机器学习来解决现实生活中的问题时,这是一个关键时刻。
星期三:从头开始
在尝试了各种 Scikit Learn 模块之后,我决定尝试从头开始编写线性回归算法。
我想这样做,因为我觉得(并且仍然觉得)我真的不明白引擎盖下到底发生了什么。
幸运的是,Coursera 课程详细介绍了一些算法的工作原理,这在当时非常有用。更具体地说,它描述了使用梯度下降法进行线性回归的基本概念。
这绝对是最有效的学习技巧,因为它迫使你去理解“幕后”发生的一切步骤。我强烈建议你在某个时候尝试一下。
我计划在进行过程中重写我自己的更复杂算法的实现,但我更喜欢在尝试过 Scikit Learn 中的相应算法之后再这样做。
星期四:开始比赛
周四开始做Kaggle的入门教程。Kaggle是一个机器学习竞赛平台,你可以在这里提交公司或组织发布的问题的解决方案。
我建议你在对机器学习有了一些理论和实践上的了解之后再尝试 Kaggle。你需要这些知识才能开始使用 Kaggle。否则,它带来的挫败感会大于回报。
词袋教程会指导你完成参赛所需的每一个步骤,并为你提供简短而精彩的自然语言处理 (NLP) 入门介绍。学习完本教程后,我对 NLP 的兴趣远超刚开始学习时。
星期五:返回学校
周五,我继续学习 Kaggle 教程,也开始学习Udacity 的机器学习入门课程。目前我已经学习了一半,感觉还挺有意思的。
Coursera 的课程简单得多,因为它不会深入讲解算法。但它也更实用,因为它会教你 Scikit Learn,这比 Coursera 课程中用 Octave 从头开始编写算法要容易得多。
未来之路
一周的学习不仅充满乐趣,也让我更加深刻地认识到机器学习在社会中的实用性。我对它了解得越多,就越能发现它可以在哪些领域解决问题。
如果您对机器学习感兴趣,我强烈建议您花几天或几个晚上的时间深入研究它。
如果您还没有准备好应对沉重的任务,请选择自上而下的方法,并尽快解决问题。
祝你好运!
感谢阅读!我叫 Per,是GitSpeak和Scrimba的联合创始人,我热爱帮助大家学习新技能。如果您想与我保持联系,请在Twitter和Instagram上关注我。
文章来源:https://dev.to/scrimba/machine-learning-in-a-week-3jh9