为萌新提供一份最直接的图文教程,介绍kaggle的一些基本操作,让没有任何经验的人也可以快速上手。
1Join a competition
首先注册kaggle账号,登录后点Compete之后可以看到Competitions如下。
随便点一个进入,可以看到比赛的详细信息,Overview中可以看到该比赛要解决什么问题,感兴趣点击Join Competition加入即可。
加入比赛后需要了解比赛的信息,比如比赛如何计分,比赛的时间线(什么时候结束等),对submission的要求,组织者提供了哪些数据等。下文以肺纤维化预测肺活量的比赛为例进行说明。
2Overview
Overview->Evaluation
可以看到如何对预测结果进行评价,以及预测应该是什么格式的。各个比赛的evaluation的方式不同,可能是F1 score/AUC/weighted MAE等。这是根据比赛的目的,由组织者决定的。这个比赛使用的meidcal运用中常用的Laplace Log Likelihood。这里不需要自己花时间写evaluation和生成submission文件的代码,参考其他参赛者的Notebook即可。
Overview->Timeline
提供了一些时间的信息,比如开始结束时间,最晚参赛的时间,最晚合并队伍的时间。
Overview->Code Requirements
该比赛为code competition,即你需要提交代码,由kaggle后台运行,生成prediction并计分。这类形式的比赛会规定CPU/GPU时间,以及一些其他的设置比如是否可以使用外部的数据,运行时是否能联网。
与之相对的另外一种形式是:上传submission的文件(一般是csv文件)kaggle计分。 这种形式很难发现参赛者是否有cheating的行为,如果第一名把结果分享给了另外一个人,加入随机的噪音也可能获得很好的成绩。
3Data
组织者会在这里详细解释每一个特征是什么意思,如何收集的等信息。这些信息至关重要,要仔细读题~ 如果还有不清楚的还可以参考一些科普的notebook。
在这里点击Data Explorer中的文件或者文件夹可以对数据的有一个直观的了解,也可以单独下载某一个文件进行预览。
比如Test folder 下包括了哪些文件
比如train.csv是什么样的,每个column的数据大概的分布什么样
数据下载
点击Download All可下载所有的数据。如果使用kaggle提供的实例(相当于云上的一个电脑)在线运行代码则不需要下载数据。
此外命令行的下载方式使用了kaggle的API,需要提前下载一个token,这种下载方式适用于无图形界面的服务器。
4Notebooks
这里可以看到其他参赛者分享的code,以notebook的形式呈现,类似于jupyter notebook允许交互和呈现图表。目前清一色的python,最近已经很少看到R的身影。推荐直接用排序看vote最高的notebook。投票最高的往往包括了基础的EDA (Exploratory data analysis)和feature engineering,里面会有很多关于该类型数据或者该领域的科普。
例如第一notebook就科普了什么是肺纤维化,什么拉普拉斯log-likelyhood,如何可视化diocom文件,如何提取diocom的信息,并且对数据进行了一些初步的分析和可视化。比如第三个notebook更是详细地科普了什么是laplace log-likelihood。
notebook带分数标签的意思是如果使用该notebook可以获得相应的public leaderboard中的分数。带tpu或者gpu标签的表示该nodebook使用的运算方式,不标即为cpu
5Run Notebooks
如果觉得某个Notebook提供了一个不错的基线模型,进入notebook后可以点击右上角Copy and Edit收入囊中,在kaggle提供的实例上编辑和运行。
Copy之后就可以编辑和运行notebook了,这里的操作和jupyter notebook一样。当然也可以自己新建一个notebook进行数据分析。
线上运行notebook并不需要下载数据,数据的位置如下所示,可以点击进行浏览。如果notebook使用了外部的数据(即参赛者上传的数据),这个数据在你copy notebook的时候,会一起被copy过来(比如这个notebook中的osic-histogram-feature就是作者在本地计算的特征)。由于一些code competetion 对运行时间和internet access有限制,可以将pre-trained的模型或者计算好的特征上传以缩减运行时间。
状态栏可以看到资源的使用情况
在右侧的setting中可以设置是否使用GPU/TPU加速(kaggle提供了每周30小时的gpu使用时间!)
点击save version可以保存notebook,保存的notebook可以在Notebooks->Your Work找到
同时在Notebooks页面还可以看到当前session的信息,不用可以停止掉
对于提交和分享notebook推荐使用Commit的保存方式方式(第二个选项),它会将所有的代码运行一遍并且生成所有的图表和output。
6Submit Predictions
目录中的output的路径是submission文件生成的地方,对于只要求提交submission.csv文件的比赛,在这里下载submission.csv文件,上传提交即可。(这里需要点击刷新才能看到新生成的文件)
对于code competition来说,首先以commit的方式保存你需要提交的notebook,到Notebooks->Your Work
点击进入想要提交的notebook(已经commit过),到底部可以看到该notebook生成的submission.csv,表示该notebook已生成符合要求的submission,点击submit,后台就会为你运行该notebook,并提交反回结果。
至此一个baseline submission便完成了,可在leaderboard中查看排名。
在My Submission中可以管理已经提交的结果。一个账号每天的提交次数会有限制,这个比赛的提交次数限制为每天5次。在比赛结束前可以选择2个已提交的结果为最后的submission,否则系统自动选择2个分数最好的作为最后的submission。
最后不得不说的是有比赛就有培训班和cheating,相比于奖金和名次,正确的态度/心态更重要。
推荐阅读1
文摘菌,公众号:大数据文摘花钱买大腿?奖牌明码标价?含金量被质疑后,我们找Kaggle合规会聊了聊规则
推荐阅读2
关注前沿科技,公众号:量子位为了1万美元奖金,他作弊拿到Kaggle比赛第一名,之后跳去硅谷明星AI创业公司,现已被封号