智能观授权新智元转载
【新智元导读】 这份入门指南详细介绍了一些参加Kaggle竞赛必知的知识,以及如何在Kaggle竞赛中打怪升级,争夺排位,“登上人生巅峰”!
我从哪里开始?
我会面对经验丰富的博士级研究团队么?
如果我没有获胜的机会,那么还值得竞争吗?
这就是数据科学?(如果在Kaggle做得不好,我在数据科学方面还有未来吗?)
我的未来将如何发展?
当你第一次接触Kaggle时,是否也有这些困惑?好,那你来对地方了!
这份入门指南详细介绍了一些参加Kaggle竞赛必知的知识,以及如何在Kaggle竞赛中打怪升级,争夺排位,“登上人生巅峰”!
对于数据科学初学者来说,Kaggle是一个很受欢迎的竞赛平台。毕竟,这里的一些竞赛中有超过1000000美元的奖金池和数以百计的行业高手。而这里的顶尖团队也拥有数十年的综合经验,曾处理过很多高大上的问题,如改善机场安全或分析卫星数据等。
虽然Kaggle如此有吸引力,但是当你首次参与时也要hold住自己,一定要理清以下内容。
首先,我们需要知道的是: Kaggle比赛与日常使用的数据科学是有重要差异的。但是,如果你以正确的心态去了解它们,还是能获取很多宝贵经验的。
Kaggle比赛
本质上,比赛(获奖)必须符合以下3个标准:
1. 问题一定很难。比赛问题不可能一个下午就能解决。为了获得最好的投资收益,主办方会提交使他们的效益最大,同时也是最难解决的问题。
2. 解决方案必须是新的。为了赢得最新的比赛,你通常需要进行扩展研究、制定算法、训练高级模型等。
3. 必须与他人竞争。因为比赛的目标就是赢得冠军,所以你的解决办法必须与他人的竞争,而且争取获胜。
日常的数据科学
相比之下,日常数据科学不需要达到相同的标准。
1. 解决问题的方法越简单越好。事实上,数据科学家应该尝试事半功倍的方法:能够快速有效地解决有影响力的项目。
2. 解决方案必须成熟。大多数常见的任务(如探索性分析、数据清理、A/B测试、经典算法)已经有了证明框架。只需要重新设计架构即可。
3. 不需要与他们竞争成为第一。一个解决方案即使只是胜过之前的测试基准一点点,也可能是非常有价值的。
Kaggle竞赛鼓励你发挥出最优秀的表现,而日常中的数据科学提倡效率和最大化的商业影响。
那么,Kaggle是值得学习的吗?
尽管Kaggle和日常数据科学有很大的不同,但是对于初学者来说,Kaggle仍然是一个很好的学习工具。以下是Kaggle竞赛的3大优势:
1. 每场比赛都是各自独立的。你不需要再扩展自己上一个项目,并收集数据,这可以让你把心思放在其他技能上。
2. 实践就是实践。学习数据科学的最好方法是通过实践学习。你没有必须赢得每一场比赛的压力,同时可以遇到许多有趣的问题。
3. 相互讨论和优胜者访谈对你都有启发性。每一场比赛都有讨论区以及优胜者访谈。你可以深入了解更有经验的数据科学家的思维过程。
如何开始Kaggle的工作
接下来是一个循序渐进的行动计划,让你在Kaggle上可以轻松提升自己,参与竞争。
步骤1:选择一种编程语言
首先,你需要选择一种编程语言并坚持使用它。在Kaggle和更广泛的数据科学社区论坛中,Python和R都很受欢迎。
如果这俩你都没有接触过,推荐Python,因为它是一种通用的编程语言,你可以端到端使用它。
步骤2:学习数据的基础知识
加载、导航和绘制数据(即探索性分析)的能力是数据科学的第一步,因为它告诉了你在整个模型训练过程中所做的各种决策。
如果你选择了Python语言,那么建议你使用专门为此而设计的Seaborn数据库。 它有许多绘制最常见和有用的图表的高级功能。
步骤3:训练你的第一个机器学习模型
在进入Kaggle之前,建议你在更容易、更易于管理的数据集上对模型进行训练。这可以让你熟悉机器学习库和空间布局。
关键是要养成良好的习惯,比如,将数据集分解为单独的训练集和测试集,交叉验证以避免过度使用,并使用合适的性能指标。
对于Python来说,最好的通用机器学习库是“scikit-Learn”。
步骤4:着手准备入门赛
现在我们已经作好技术准备,该来了解一下Kaggle了!
Kaggle最常见的比赛类型包括以下4种:
特色赛:通常是由公司、组织,甚至是政府赞助的。他们有最大的奖金池。
研究赛:面向研究,几乎没有奖金。他们也有非传统的提交过程。
招聘赛:是由想招聘数据科学家的公司赞助的,比较少见。
入门赛:有很多比较有特色的比赛,但是没有奖金池。它们提供了易于处理的数据集、大量的教程和循环的提交窗口,这样你可以随时参加比赛。
入门赛比较适合初学者,因为它给了你一个低风险的学习环境。同时,你还能得到许多社区、论坛创建的教程。
步骤5: 学习经验教训,而不是关注收益
有了上述基础,大显身手的时候到了!
一般来说,参加Kaggle比赛需要很多时间和精力,还要合理安排。因此,建议你明智地选择对手。尽量参加能使你实现长期目标的竞赛,获取其中的技术和技巧。
虽然奖金很诱人,但更有价值(更可靠)的奖励是你可以获得为自己的职业发展所需要的技能。
技巧1:设定递增目标
如果你玩过“Addicting Games”游戏,就会知道递增目标的魅力。这就是能让你着迷的,很牛的游戏的手段。每一个目标都足够大,足以让人有成就感,但却足够现实,让你触手可及。
大多数的参赛者都不可能一上来就赢得一场比赛,如果你把赢一场作为你的第一个目标,那么很容易感到气馁,在尝试了几次之后就失去动力了。循序渐进的目标会使你的kaggle之旅更加愉快。
例如:
1.在一场比赛中得分居于前50%。
2.在一场比赛中得分居于前25%。
3.在一场比赛中得分居于前10%。
4.赢得比赛!
这个策略可以让你在参赛过程中衡量自己的进步和改变。
技巧2:查看最流行的参赛者内核
Kaggle有一个很棒的特点,参赛者可以提交内核——一种简短的脚本,可以探索一个概念,展示一种技术,甚至可以共享一个解决方案。
当你开始一场比赛,或者当你达到一个顶峰时,回顾流行的内核可以激发出更多的想像。
技巧3:在论坛上提问
不要害怕问“愚蠢” 的问题。你会有很多收获,包括来自经验丰富的数据科学家的建议和指导。
技巧4:独立开发核心技能
一开始,建议你单独工作。这将迫使你独立处理应用机器学习过程的每一个步骤,包括探索性分析、数据清理、特性工程和模型培训。
如果你过早地开始合作,你可能会错过发展这些基础性技能的机会。
技巧5:利用团队合作突破瓶颈
也就是说,在未来的比赛中进行合作可能是一个很好的方式,向其他人学习,突破个人局限。过去,许多赢家都是团队,他们联合起来就意味着把更多优秀的知识结合起来。
此外,一旦你掌握了机器学习的技术,你就可以与比你有更多领域知识的人合作,进一步拓展自己的能力。
技巧6:记住,Kaggle也可能只是一个垫脚石
记住,你并不一定要成为一个长期的“竞技高手”。如果你发现你不喜欢这种模式,那也没什么大不了的。
事实上,许多人在开始自己的项目或成为全职数据科学家之前,只是把Kaggle当作垫脚石。
这也是你应该尽可能多地专注于学习的另一个原因。从长远来看,参加Kaggle最好的目标是获得相关经验,而不是追逐最多的奖金。
技巧7:不要担心等级低
一些初学者不敢参加比赛,因为他们担心别人看到自己的低级别而感到难为情。当然,竞技焦虑是一种真实的现象,并不只局限于Kaggle。
然而,低级别并不是什么大问题。没有人可以评判你,因为他们都是初学者。
即便如此,如果你仍然对个人资料中的低排名感到担忧,那么也可以创建一个单独的练习账号来学习技巧。一旦你感觉时机成熟,就可以使用自己的 “主账号”进击排行榜了。