Kaggle参赛入门经验


在数据科学领域,没有人不知道大名鼎鼎的kaggle——人们在这里学习交流,提高自己的技能。对于从业者来说,最好是参加预测任务竞赛来提升自己。对于新手来说,一定要到kaggle网站实际参与一次竞赛,至少我一直是这样认的。

在短暂的观望后,2018年底我决定参赛。在这之后很短的时间内,我学会了大量之前不熟悉的数据科学技能,为竞赛做准备。令我惊奇的是,我发现即使对新手来说,数据竞赛也是充满乐趣的。

对新手来说,第一次参加kaggle竞赛会遇到一些问题,我会尽可能的为你揭开kaggle的神秘面纱。总之,我希望能让你感受到kaggle的魅力,让kaggle推动你在数据科学领域不断前进。

在公共排行榜跟进社区动态

让我们首先从101新手赛了解kaggle平台吧。在一般的kaggle竞赛中,你一般会收到两份数据:训练集与测试集。训练集是带有标签的数据,测试集则不带标签,你需要做的就是编写算法对测试集的标签进行预测。

在比赛过程中,参赛者可以随时提交自己的结果,测试的部分结果(我在之后会解释为什么只显示部分测试结果)会被分级并展示在公共排行榜。对于参赛者来说,通过排行榜可以很好的了解自己及对手们的比赛情况。对一般的参赛者来说,仅仅是观看比赛过程中榜首的更替也是很有趣的。

上面张图是我根据最近的“Instant Gratification”比赛的公共排行榜制成的。每一条蓝色的线代表一个团队,橙色的线表示最佳队伍的得分(在本次比赛中,得分为1表示最好结果)。

在公共notebook上学习共享知识

当你看到上面的图时,你可能会问你自己为什么这么多团队彼此之间的成绩紧紧挨着。大量团队的成绩集中在深蓝色线条上,而这可以用kaggle notebook来解释(以前被称为kaggle kernels)。

从前从未听到过kaggle笔记本么?Kaggle 笔记本是建立在云端的,为社区的人们分享其预测模型的代码和想法的平台。对于新手来说,这是一个很棒的设置,因为不需要构建本地环境,下载数据,安装软件包以及陷入版本管理的泥潭中。更重要的是,这些虚拟机往往比本地笔记本电脑的性能更好。Kaggle笔记本可以私有(仅你本人或者你的队伍成员可以看到)也可以公有。Kaggle一个令人兴趣的方面是,一个真正的“游戏中的游戏”有它自己的奖励,而对于一个人的公有笔记本有可能会被社区成员投票。

在每一个竞赛中,都会有由社区成员所创建的公共notebook来帮助探索给定用例的基准模型。数据科学家使用这些notebook进行社区验证,修改其他人的工作,并逐步游览他人的代码。

那么,所有的Kaggle得分都汇聚于那条深蓝色的线吗?那就是当一个突破性的内核发布时,整个竞争领域的人们都采用某人的代码或观点时才会发生的。

讨论论坛提供内容

如果你不想马上进入内核,那么你可以把注意力转移到Kaggle论坛上。那是另一个入门的好地方。数据科学家在这里分享他们的想法,提出问题,并交谈。

顶尖团队在“Jigsaw Unintended Bias in Toxicity Classification”竞赛中讨论的帖子

比赛结束后,获胜的队伍往往会发表他们的观点,以改善整个社区。

各种戏剧时刻来临

每一场比赛都有其出人意料的时刻:有可能是一支落后的队伍跃居积分榜榜首,也有可能是严重的数据泄露。

在一场比赛中,有很多时候,一两支队伍会从排行榜的其他队伍中脱颖而出。人们将社区成员对顶级竞争对手为达到目标所做的努力的猜测,称之为“发现魔法”,参赛者常常也是竞争对手和观察家。

追踪冠军竞赛公开排行榜(分数越低越好)

在最近的一些比赛中,我创造了一些有趣的notebook,可以随时间推移追踪公共排行榜。在这上面的“CHAMPS Molecular Properties”竞赛中,你可以看到一个团队已经找到了一种从人群中抽身的示例。

合并队伍来提高排名

合并队伍在Kaggle比赛中是重要且普遍的策略。它允许数据科学家在一个安全的环境中进行协作,并在其预测模型中获得协同动力。我通常通过设定个人目标并专注于单项成功来开始比赛。一旦我有了改进我的模型的想法,我就会考虑对其进行扩展,并与其他人(但不是太多其他人-谷歌“林格曼效应”)一起努力。

在“Santander Customer Transaction Prediction”比赛的排行榜上名列前茅的所有队伍

Kaggle队伍合并和职业生活的其他领域合作项目并没有什么不同——它需要信任、道德取向和合作心态。另外一方面,在比赛中solo被广泛认为是kaggle最困难的事情之一——事实上,要想获得比赛大师级的地位,你必须独自一枚金牌,总共获得5枚金牌。

最终结果的波动

在任何给定的Kaggle竞赛中,公共排行榜只在测试集的一部分进行评分。有可能无意中创建的模型在公开评分的测试集中表现的非常好,但它们的模型精度实际上并不能很好的体现在私有排行榜中。这就是为什么有一个不仅准确而且能很好地推广到公共和私人排行榜的模型是很重要的。

社区将这种现象称为“在公共排行榜上过拟合”。当最终结果被制成表格时,结果的波动有时会非常显著!上图显示了最近一次比赛中排名前10的公共和私人团队——你可以看到只有一支来自公共前十名的团队留在了最后的积分榜上。这个例子实际上是相对温和的——相对于一些著名的波动,在这些著名的波动中,有的团队发现自己的排名变化了数百个,有时甚至是数千个位置。

在健康的竞争中娱乐、学习的社区

排行榜,notebook、论坛、戏剧性问题、团队以及最终结果:如果你决定参加Kaggle竞赛,你会遇到很多我想不出来的问题。我想不出比加入kaggle更好的方法来提高我们的机器学习技能。

雷锋网

分享到