这里总结一些kaggle比赛的步骤,可以帮助你快速的入门,可能也适用于其他比赛
了解比赛
首先,我们要了解比赛数据是什么,例如要处理的是图像数据,文本数据,表格数据,还是kaggle提供的环境数据比如AI对战的强化学习
其次,需要了解数据量的大小,一般情况下,文本,图像数据都很大,比如肾小球的分割就有几百G,这种情况没有卡的话很难处理,2080ti以上才能训练,表格数据会比较小,可以直接使用kaggle的kernel环境直接训练。
除此以外,还要了解目标,分类任、目标检测,分割,预测(一般是回归),还有图像转文本(kaggle有一个化学公式图片转文字的),还有语音识别的分类、强化学习等。
熟悉要求
Kaggle的比赛中一般的信息是公开的,但是在点击加入之前是无法看到具体数据的,所以我们这里需要查看以下部分,可以获取到具体的信息:
1、Description:这是背景描述,大概看一遍即可,这里有基本的信息,如果决定要参加则需要详细看一遍以了解背景知识等。
2、Evaluation:这个需要看,并且要每个字都看,尤其是决定参加比赛以后,这个是你最后评分的标准,必须要熟悉,通过这个可以看到具体的任务目标和指标。
3、timeline:里面是时间点的要求,这个主要看我们有没有时间参与,即时间够不够。
4、Prices:一般我是不关注,没卡也达不到那个标准,哈
5、Code requirements:这里也需要重点关注,有时候会有GPU和CPU的时间要求,注意别超了,超时是无效的
参加比赛的目的
我这里将参加比赛的目的分成三种:
1、纯学习:没有知识积累或者想了解相关的内容,那么可以直接加入,具体怎么快速学习,我在最后的技巧中会提到。
2、想试试拿名次或者试试自己水平:这里主要的问题就是时间是否够用和我们的GPU计算资源是否能够hold住,如何判断计算资源在下面的判断能不能参加介绍,如果想积累实际经验,也需要有一些相关的基础知识否则参加起来会很费时间。我想类目的的小伙伴会很多吧。
3、为了拿名次的:我想这样的应该不会看这篇文章吧,当然如果有这样的大佬,欢迎与我联系,哈
判断能不能参加的标准
在了解了比赛的大概知识后,我们可以了解下面内容来判断能否参加这个比赛,或者说我现在有没有实例参加:
1、结束时间,想正经参加比赛的话建议参加还有1个月以上时间的比赛,否则训练和熟悉的时间很可能不够,一般kaggle比赛周期是3个月左右。
2、在未加入比赛前是不可以看具体数据的,但是我们能看到数据量,选择一个比赛,点击data,看下面的data explorer,能看到训练和测试数据的总量:
例如TensorFlow - Help Protect the Great Barrier Reef 是目标检测的比赛
截图可以看到,一共有15G的数据和大概2万个文件(图片),如果我只有一张2080Ti,那我是不会参加的,因为训练的速度会很慢,估计不会有很好效果。
3、未加入比赛但是可以看到公榜的分数,点击Leaderboard,可以看到排名,例如这个:G-Research Crypto Forecasting
评价指标是”皮尔逊相关系数",而且已经到1了还有好多0.9999,熟悉皮尔逊相关系数应该知道“1”的含义是什么,这种比赛就不建议参加,参加了也浪费时间,因为无论从学习还是比赛的角度都没有任何的意义。
还有上次那个外星信号检测SETI Breakthrough Listen - E.T. Signal Search,使用的指标是AUC,公榜基本上都是0.99,后来调整以后才变成0.96,类似这样的比赛都不建议大家参加,真的浪费时间,如果想学习的话,直接等比赛完看分享就好了。
4、了解完公榜以后,可以大概看看训练时间:我们点击Code,在搜索框中搜索“train”,一般情况下都会有训练代码的分享,这时候可以看看这些代码在kaggle上训练了多久。随便找个进去看看,主要看使用了那个模型,训练了多少轮次和使用了多少时间,还是以TensorFlow - Help Protect the Great Barrier Reef为例
红色的说明花费了1万多秒,我们在代码中可以找到 epoch: 20/20,也就是说训练了20个轮次,除法计算500多秒(小10分钟)一个轮次,这里要说明的是kaggle的GPU是V100,但是磁盘和内存不太好,所以基本上和我们线下自己的2080ti时间相近,这样有了这些对比就能够知道这个比赛我们现有的硬件水平能否参加了。
5、最后就是,一般情况下表格的数据都可以使用kaggle的kernel线上计算,比如现在每个月的Tabular Playground Series,如果想学习的话这个目前是很好的选择
快速了解比赛内容的一些技巧
刚才已经说到了查看分享的训练代码,无论你加入不加入这个比赛,都可以使用下面的方法快速了解比赛的内容
1、搜索“EDA”,会有EDA的code分享,多看几个就能够了解数据分布和比赛更具体的信息
2、搜索“baseline”或者“train" 会有训练代码分享,可以快速查看
3、搜索”infer“或”submit“ 会有提交代码,并且可以使用公榜的分数进行排序,可以查看分数最高的思路
4、看公榜,如果提交代码也公开了的话会在公榜显示代码链接,直接点击去就好,就像上面截图的G-Research Crypto Forecasting 第4名那个样子,点击就能够看到完整代码。
选择参加那个比赛
1、初学者也没卡,可以先看看表格类的数据挖掘比赛,比如每个月的Tabular Playground Series。第一可以了解完整的流程,为以后打基础。第二表格类的数据直接使用kaggle的kernel就可以,也不需要我们的资源。第三,表格类的数据目前还是以提升树和模型的cv,stack为主,所以概念比较简单很好上手。是入门的最佳选择。
2、有一定知识而且有卡,这个可以根据自己的方向选择比赛参加和学习,可以参考我上面总结的内容。
3、特殊的方向,比如强化学习或者音频方向,这类的比赛kaggle上不多,只能等等机会或者看看别的类似比赛要不就换个平台。
4、初学者但是有卡,有资源就能够快速学习,可以选定自己的方向,看看公开的代码自己线下复现并且改造,如果能完整参见1-2个比赛绝对可以达到行业中80%左右的水平了。
5、大佬也有卡,我想这类的应该不会看我的文章吧,有的话请直接联系我,哈
总结
如果你想参加kaggle比赛、找队友组队或者获得kaggle比赛的相关内容交流,请关注我们的公众号 deephub-imba 发送 kaggle 即可加入我们的kaggle交流群。
或者直接加我的微信,请注明 kaggle 比赛