如何参加Kaggle竞赛
Kaggle是所有研究机器学习的人的第一个去处。这个互动的在线平台提供了数百个数据库和教程,你可以用它来启动你的ML事业。
但该网站最著名的是它的比赛。新人可能很难在界面上确定自己的方向,并了解从哪里开始。所以在这篇文章中,我们将帮助你开始参加你的第一个Kaggle竞赛!
关于Kaggle竞赛的几点看法
Kaggle竞赛是由Kaggle或其他公司如Google或WHO制定的机器学习任务。如果你参赛成功,你可以赢得真金白银的奖励。
比赛的问题类型和复杂性各不相同。即使你是一个初学者,也可以参加一个。然而,高级比赛更加有趣,在比赛中取得领先位置是对你的机器学习工程师简历的一个很好的补充。
比赛以三种不同的形式举行。
简单竞赛
这些是你的标准Kaggle比赛。你访问数据,建立模型,提交材料。然后,比赛主办方会检查你的结果,并在排行榜上给你打分。Kaggle上的大多数比赛都遵循这种格式。
两阶段比赛
在两阶段比赛中,每个挑战都有两个部分。第二阶段提供一个新的测试数据集,在该阶段开始时发布。要获得它,你必须在第一阶段提交。为了成功地参加这种比赛,你需要仔细阅读规则,并留意时间轴。
代码竞赛
在代码竞赛中,提交的内容是在Kaggle笔记本中进行的(我们将在后面解释什么是笔记本)。这些比赛在某种程度上是比较公平的,因为所有用户都有相同的硬件。代码竞赛可能对你可以提交的笔记本有限制,例如,CPU或GPU运行时间,使用外部数据的能力,以及对互联网的访问。所以阅读这里的规则也是非常重要的。
在Kaggle比赛中,每个人都是以一个或多个人的团队进行比赛。每个团队都必须有一个团队领导。你可以通过比赛中的团队标签邀请你的朋友或加入其他用户的团队。你的团队也可以与另一个团队合并,例如,如果你意识到独自提交一个模型太有挑战性。然而,你只能在某个截止日期之前做到这一点。如果还有其他细节需要澄清,请随时浏览Kaggle竞赛页面。
如何使用Kaggle进行竞争
让我们来学习如何使用该平台。在你注册后,你会被转到一个个性化的feed,里面有你可能感兴趣的帖子、竞赛和讨论。从这里,你可以进入 "竞争 "选项卡。
点击泰坦尼克号比赛。所有新注册的用户都被邀请参加一个简单的比赛,以了解Kaggle的工作方式。即使你不知道如何编码,这也不是问题。
在泰坦尼克号比赛中,你需要使用机器学习来创建一个模型,预测哪些乘客在泰坦尼克号沉船事故中幸存。你被要求建立一个预测模型来回答这个问题。"哪些乘客更有可能活下来?"使用姓名、年龄、性别、社会经济阶层等数据。
每个比赛都有这些标签。
- 在数据中,你会发现训练和测试你的模型的数据集。
- 笔记本是你的工作空间。它们包含教程、博客文章、文档。它们也可以执行代码而不需要你安装任何东西。
- 在讨论区,你可以与其他参加比赛的人交流,提出问题,并给予建议。
- 排行榜显示了参赛者在比赛中的得分情况。
- 数据集包括由参赛者添加的额外数据集。
- 最后,规则包含了比赛的规则。
如果你想参加,请点击加入比赛。
如何进行第一次提交
现在让我们一步步学习如何参加比赛。
1.下载数据
如果你想在开始内核之前做一些初步的探索性分析,或者只是在你的电脑上有文件,请进入数据,向下滚动,并点击下载所有。
2.阅读规则
是的,这很重要。例如,有时规则会对数据的使用施加限制。你需要遵守这些规则,以避免被取消资格,特别是对于那些由第三方组织举办的比赛。
3.研究公开的内核
你可以访问其他人的公开笔记本,看看他们是如何处理这个问题的。只要进入比赛中的笔记本这个标签就可以了。研究那些进入前1%-3%的最佳案例绝对是很有用的。没有获奖的解决方案也很方便,因为你可以检查它们,搜索需要改进的地方。
4.创建你的内核
你可以在Kaggle Kernels上建立模型。这个可定制的Jupyter Notebooks环境与免费的GPU相当方便,预装了库,并允许你生成一个CVS预测文件来提交。
要创建你自己的内核,请进入笔记本标签并点击新笔记本。通过点击添加数据->竞争数据->添加,很容易将你的数据添加到提交中。不需要上传任何东西。
如果你和其他人一起工作,你可以通过点击共享按钮轻松地与你的同事分享你的笔记本。笔记本允许你在不同版本的提交材料之间切换,并安全地存储它们。你可以向被保存的目录中写入多达20GB的内容。
5.进行提交
Kaggle上的提交是CSV格式,通常有两列:ID列和预测列。上传你的提交材料,并收到一个准确率分数。
要尝试在Kaggle上提交,请遵循这个教程。它甚至为你提供了代码;不需要写任何东西。
6.查看排行榜
看看谁赢了,总是让人激动不已!看看你的模型在排行榜上排名如何。你可以赢得金牌、银牌或铜牌,这将增加你在平台上的声誉。在高级比赛中,有可能赢得丰厚的奖金。
7.提高你的分数
通常有可能提高你的分数,在排行榜上走得更高。阅读讨论,提出问题,并从其他竞争者那里获得见解,以学习和提高。
如何在Kaggle上找到适合初学者的比赛
如果你没有太多机器学习的经验,可能很难找到适合初学者的比赛。我建议你使用过滤法。
现在我们感兴趣的类别是入门和游乐场。其他类别提供的任务要高级得多,一开始可能会让人望而却步。但让我们简要地谈谈所有这些。
在难度上高出一筹:
- 创建一个能区分狗和猫的算法。
- 教你的算法对树叶进行分类。
- 学习预测出租车旅行的时间。
- 用一个平易近人的ML数据库练习回归技能。
- 创建一个人工智能,在一个简单的游戏中与他人对弈。
- 练习更多的建立人工智能游戏代理。
如果你有任何比赛要补充,欢迎把你的想法发给我们,我们会把它列入帖子。
我在Kaggle竞赛中会处理什么样的问题?
Kaggle竞赛的内容多种多样,但在大多数情况下,它们处理的是以下问题之一:
- 分类
- 回归
- 计算机视觉
- 图像处理
- 自然语言处理
算法的选择取决于你要处理的问题。只用神经网络和深度学习来解决一切问题是很诱人的,而且很多时候它们确实能保证良好的结果。但不是所有的时候。有时坚持使用神经网络只是效率低下。所以不要害怕简单问题的简单解决方案,明智地选择机器学习技术。
如何在比赛前练习?
现在让我们来谈谈参加比赛前可以做什么:
-
首先,你需要选择一种语言:比赛通常用R或Python主持,有时用其他语言,如Julia,但大多数是Python。
-
一旦你选择了语言,你就可以开始在真实的数据集上进行练习了。我推荐UCI机器学习资源库。尝试解决一个简单的问题,如分类或聚类,看看会发生什么。UCI上的数据集是按问题分组的,所以很容易定位。别忘了把数据集分成训练集和测试集,然后把测试集分成 "公共 "和 "私人 "集,因为Kaggle上的比赛就是这样检查的。关于更多很酷的ML数据集的信息,你也可以浏览我们的博客。
-
在Kaggle或GitHub上的Notebooks部分,你可能会发现任何你想解决的简单问题的解决方案,甚至可能使用你使用的相同数据集。在你之前有成百上千的人也在努力学习ML。随意使用他们的笔记本以获得灵感,这样你就能很好地解释结果。
-
在我们提到的简单的Kaggle竞赛中练习。不要从那些提供数百美元奖金的比赛开始。使用其他参赛者发表的笔记本和教程来逐渐提高你的技能,同时也熟悉这个平台的特点。当你提交的作品开始在排行榜上获得高分(前10%-25%)时,你就可以开始考虑特色或研究竞赛了。
如果我没有出色的硬件用于Kaggle比赛,该怎么办?
有效的硬件,不在计算中挣扎,可以大大简化数据科学家的工作,但并不总是可以升级你的硬件。
首先,你可以用GPU运行Kaggle内核来加快深度学习模型的训练。了解如何设置它。这个选项的一大优势是它是免费的。然而,从一些评论来看,这个选项并不总是有效。因此,这里有一些其他选项。
如果你需要更多的计算机功率,你可以直接在笔记本中升级到谷歌云AI笔记本。你可以免费探索一些选项,还可以获得300美元的信贷。但在处理大量数据时(例如,训练深度学习模型),你需要尽快升级,而且成本相当高。这就是为什么有些人喜欢在其他地方设立服务器。在这种情况下,你将不得不在自己的电脑上设置环境,最流行的选择之一是Anaconda。如果你决定选择这个方案,请使用Faizan Ahemad的教程,了解如何安装它。
另一个流行的选择是从AWS、微软Azure、Digital Ocean或类似的地方租用计算机电源。许多人专门为深度学习推荐的平台是FloydHub和Crestle.ai。
最后的话
现在你知道了在Kaggle上进行首次提交所需的一切。唯一剩下的就是开始了。
如果你正在寻找更多关于机器学习的信息,请随时浏览我们的博客。如果你有任何问题或关于下一步内容的建议,请在Twitter上给我们写信或使用下面的表格。祝你好运,愿机会永远对你有利!