到底要不要参加Kaggle竞赛
【编者按】数据科学家Reshama Shaikh分享了参加Kaggle的理由,并简要介绍了如何入门Kaggle。
关于Kaggle
Kaggle是最著名的预测建模分析竞赛平台。Kaggle公司于2010年在澳大利亚的墨尔本成立,在收到硅谷的投资之后迁往旧金山。2017年被Google收购。如果想了解更多关于Kaggle的历史和未来,可以看AMA with Anthony Goldbloom(Kaggle CEO的访谈)。
在过去十年来,英文语境中的“数据科学”(data science)一词的含义逐渐发生了变化。同样,“数据科学”和“kaggle”也逐渐变得密不可分,与此同时,数据科学社区中的很多人在探究和争辩这一平台的用途:
Kaggle……有用吗?
我对Kaggle最初的想法
和很多人一样,我对Kaggle竞赛抱有一些成见。我听说Kaggle有好几年了,也从数据科学领域的其他人那里获得了一些对Kaggle的认识:
- 我听说过拥有数十年经验的退休博士成为Kaggle竞赛赢家的传奇(我过去常常好奇这些天才是在沙滩上参赛的,享受着碧水蓝天和流畅的wifi,还是呆在昏暗、满是灰尘的、乱糟糟的办公室里参赛的……)
- 我获胜的概率为零。
- 我真的能学到有价值的东西吗?
- 投入时间提升精确度0.01有何意义?
- 这真的是使用我的时间的最好方式吗?还是说我应该花时间学习另一项更有价值的数据科学技能?
- 赢家需要使用复杂的集成方法。
- 数据很干净,人为地干净,一点也不现实。
- 参加一项Kaggle竞赛并不能让我成为一个合格的数据科学家,所以何必呢?
- 我不知道从何开始……
我的第一项Kaggle竞赛
在抗拒了几年之后,我最近第一次参加了Kaggle竞赛,Is it a Ship or Iceberg。我写了一篇文章,分享了初次参加Kaggle竞赛的体验。
Kaggle竞赛和纽约马拉松
我发现Kaggle竞赛和纽约马拉松很像。大部分参赛者是为了享受过程,而不是赢得第一。
结论:参加吧
要不要参加Kaggle?我的答案:“是”。不管是数据科学的初学者,还是资深的数据科学家,参加Kaggle竞赛都是有价值的。下面是一些理由。
评测
获取你自己的数据集或从网站抓取数据能让你学到很多,但这么做的缺点是没有评测标准,无法比较你的发现。有可能你犯了大错,但无人知晓,因为没有经过验证。Kaggle竞赛则提供了一个“检查你的作品”的平台。
不同水平的人都能从中学到东西
初学者有很多可以学的:
- 熟悉Kaggle平台
- 如何使用命令行或API从Kaggle获取数据
- 结构化的生态系统让高级统计学技能不足的人集中全力解决问题
- 理解评估指标
- 开发、运维技能:Git、云计算
- 练习
- Kaggle提供了一些免费的交互式教程
有经验的从业人员,仍有许多东西可以学习:
- 结构化的生态系统让具备高级统计学技能的人集中全力解决问题
- 更深入地探索超参数
- 聚焦当前最先进的新方法
- 赛后分析赢家的做法
- 管理大规模数据集(超过一百万项记录)
- 配置GPU机器进行深度学习
- 使用深度学习并与传统算法比较结果
数据
整个数据科学社区都在谈论论数据集。你能在Kaggle上熟悉其他学习平台以及会议发言人提到的流行的数据集。
尽管Kaggle提供了数据集,你仍然需要理解数据和评估指标。和流行的观点不同,仍有需要进一步检查的“脏数据”。深入分析错误标记项将带来算法方面的调整。
作品集的组成部分
没错,参加Kaggle竞赛并不能证明你胜任数据科学家的工作。参加一门课程、出席一次会议、分析一个数据集、阅读一本数据科学的书也不能。参加竞赛增加了你的经验,增强了你的作品集。它是你其他项目的补充,而不是数据科学技能集的唯一证明。
获得乐趣
人们经常不确定是否要追寻一个数据科学的职位。参加竞赛是一种测量你的能力和兴奋点的非正式方法。如果你确实很享受参加Kaggle的过程,那说明你的方向没错。如果你选择把时间花在其他事情上面,那也很好;这是一种找到答案的方法。
Kaggle入门
入门指南
EliteDataScience上的The Beginner’s Guide to Kaggle提供了关于Kaggle的详尽信息,以及上手Kaggle的一些技巧。
核
核(kernel)是Kaggle用户分享的代码(Jupyter Notebook形式,R或Python)。参加竞赛时,你可以复制、使用这些代码。
讨论区
每项竞赛都有一个讨论区,可以交流问题,给核、主题投票。
Slack
Kaggle有一个Slack小组:KaggleNoobs,拥有近四千成员,另外还有一个AMA(Ask Me Anything,问我任何事)频道,经常访谈Kaggle参赛者和赢家。
选择
- 你可以参加已经结束的竞赛。记住,参加Kaggle是为了学习,而不是最终结果。
- 有各种各样的主题(随机森林、多元分类、神经网络、NLP)和各种各样的数据集(图像、结构化数据、文本、大数据)
组队
- 不管你是初学者还是有经验的数据科学家,都可以组队。
- 刚开始可以作为独立的小组参赛,以最大化每日的结果提交数量,在竞赛快结束时再合并小组。
结论
我觉得很有必要参加至少一次竞赛。对没试过的东西的看法,和已经尝试过的东西的看法,是不一样的。和一切事物一样,Kaggle在不断演化,特别是Google收购以后。过段时间可以回去看看,有没有什么新东西。
不必局限于Kaggle
尽管Kaggle是最出名的平台,参加竞赛的机会还有很多:
- 许多大学的数据分析部门举办年度竞赛
- 会议经常会办一些竞赛(有时称为“任务”)
- 私营公司会赞助自己的竞赛