【小哈划重点:Nityesh Agarwal也是先从学习Python编程开始的。但是现在,他越来越深入到这个领域后,他的思想开始转变了。他认为从Kaggle开始,而不是从21天学会Python机器学习、从零开始掌握Python机器学习、手把手教你用Python打造第一个ML应用……更适合入门机器学习和数据科学。 或者说,至少他自己是这样的。】
Kaggle的数据集和竞赛题,很多都来源于现实世界的真实问题,对于学习者来说是非常宝贵的资源。
Nityesh Agarwal是一名工科学生。一年多以前,他开始想要学习对机器学习。
但因为那时候很少有学校开始机器学习相关的课程(当然,现在开设这门课程的学校也不多),只能自己一个人一点点的摸索学习方法来。
然而时间到了2018年年底,这个问题依然存在。虽然今年机器学习特别火,但大多数想要进入机器学习这个领域的年轻人、开发者,还是不知道机器学习该如何下手。
现在普遍流行的说法是:要想学会机器学习,必先学会Python。
有趣的是,根据新智元一篇吐槽Python的文章里的投票显示,近40%的新智元读者表示不喜欢Python,这一结果让我十分意外。
Nityesh Agarwal也是先从学习Python编程开始的。但是现在,他越来越深入到这个领域后,他的思想开始转变了。
他认为从Kaggle开始,而不是从21天学会Python机器学习、从零开始掌握Python机器学习、手把手教你用Python打造第一个ML应用……更适合入门机器学习和数据科学。
或者说,至少他自己是这样的。
下面这篇文章,由Nityesh授权新智元编译发表。本文将告诉你为什么说Kaggle更适合新手,并一步一步的引导你入门。
你可能对Kaggle有一些误解
从Kaggle入手是什么意思呢?
你可能听说过Kaggle作为一个网站,为ML比赛颁发令人难以置信的现金奖励。下图
误解1:Kaggle是一个举办机器学习比赛的网站
很明显比赛并不是他们全部的价值所在,比赛只是Kaggle的一部分。
除了主办机器学习比赛,Kaggle还有以下3个非常重要的项目:
项目1:数据集
Kaggle包含9500多个数据集,简直就是我们学习ML的一座宝库。
项目2:内核
它只是一种非常有效和酷炫的共享代码方式,以及大量的可视化,输出和解释。
项目3:Learn
包含免费,实用的实践课程,涵盖快速入门所需的基础知识条件。而且一切都是使用上述Kaggle的内核完成的,这意味着您可以互动和学习,最快速的获得知识和技能。
误解2:只有专家(具有多年经验的博士或经验丰富的ML从业者)才能参加并赢得Kaggle比赛
一个高中的孩子成为了Kaggle的比赛老手。用他自己的话说,“我不知道算法背后的所有数学,但就实际使用算法而言,我认为对其运作方式有一个合理的了解更为重要。”
误解3:在参加Kaggle比赛之前,应该再做一些课程并学习先进的机器学习概念,这样才有更好的机会获胜
机器学习最重要的部分是探索性数据分析(或EDA)和特征工程,而不是模型拟合。
许多Kaggle前辈认为,新手容易纠结于复杂的模型,而实际上很多简单的算法才是获胜的关键。
你为什么要用Kaggle?
理由1:准确了解入门必不可少的内容
关于Kaggle Learn的机器学习课程不会教你ML算法背后的理论和数学。 相反,它只关注分析和建模数据集时所需要用到的知识。
类似地,Kaggle的Python课程也不是为了让你成为Python的专家,知识确保你获得了足够的Python知识,以便继续下一步。
这样可以最大限度地减少您在被动学习中花费的时间,并确保您已准备好尽快应对有趣的挑战。
理由2:体现了从实践中学习的精神
有目标的去学习,或者说围绕一个完整项目去学习,见效是最快的。读书,跟学习,并不是一回事。
但完整的项目可不是那么好找的。而且一个也很难保证能够尽肯能多的运用到需要学习的只是。
而Kaggle拥有海量的数据集,就像是数据科学和ML项目创意的宝库。
围绕数据集和内核创作的教程,以及大量的讨论组,为初学者提供了非常便利的条件。
理由3:利用真实数据去解决真实问题=>真正动力
Kaggle竞赛题,来自真实公司遇到的实际问题。
所以,他们提供的数据集是真实的,所有奖金都是真实的。这意味着你有机会参与到实际问题的解决中。
你决定要从Kaggle开始了?
第1步,快速了解必要的基础知识
首先选择一种语言,Python或者R都可以。
然后,请前往Kaggle Learn快速了解该语言的基础知识,机器学习和数据可视化技术。
第2步,从一个有趣的赛题或数据集入手
我建议在开始时选择一个正在进行或者受欢迎的比赛,通过这种方式,你可以确保找到至少一些旨在帮助新手的公共内核。
记住,你的目标不是比赛本身,而是学习和提高您的机器学习和数据科学的知识。
如果你实在不知道选哪个,下图是一个供参考的方案。
第3步,探索公共内核
它们将帮助你了解该领域的一般工作流程,以及其他人为此竞赛所采取的特定方法。
通常,这些内核会透露一些你不知道的内容,所以当你遇到一个不熟悉的术语时,不要感到沮丧。
别忘了,你的目标就是来学习的。
第4步,开发自己的内核
第5步,了解你应该做什么,然后跳到第4步
在开发内容的过程中,你会越来越清楚自己哪个方面有所或缺,你就知道自己该做什么。然后跳到第4步去完成他,学习、实践、重复。
第6步,回到第3步分析并改进
这个时候你已经掌握了所需的知识,并且也有了非常好的实践经验,再回过头去分析别人的内核,肯定就会有一些不同的感受。
可能你能更深刻的体会别人这么做的目的,或者你也能分析出一个更好的实现方式。
那么恭喜你,你已经入门了!