1. 背景
学习《动手学深度学习-李沐》教学时,第一次比赛内容是房价数据预测,使用的数据提交平台是Kaggle。前期也了解过Kaggle平台是有同学来面试,会提到参加Kaggle比赛的某某项目名次。对于这次学习的成果验证,也需要使用。
听到李沐介绍2000多个同学参加直播,实际参赛对于170多,参与率小于10%。除了技术之外,还有存在很多空间可以成长。同时我也目前属于90%的人群,主要还是不会使用Kaggle,闻其名不知其用。
过去的行为需要改变,主动学习并参与,进入Data Scientist的大群体,至少要学会Kaggle,因此整理学习过程用于当前总结和日后回顾之用。
2. Kaggle平台简介
Kaggle是一个服务于数据科学家,采用机器学习等方法进行数据竞赛排名的平台。成立于2010年,由Anthony Goldbloom和Jeremy Howard创立,在2017年3月8日,Google宣布收购Kaggle。
[1]wikipedia, https://en.wikipedia.org/wiki/Kaggle
3. 使用方法总结
3.1. 竞赛说明
竞赛类型:通用和其他
3.1.1. 通用竞赛:
- 特定型比赛:常用1000-5000支队伍短期内参赛,设有奖金有时达到100万美元。
·专家还是初学者,都可以学习技巧和讨论。 - 研究型比赛:一般几百支累计内参赛,不设有奖金。
·往往是对某一特定领域的深入研究。 - 初学者比赛:常会几千几万支对于参赛,是初学者学习的圣堂,往往是·机器学习重要的课题讨论和练习的场所。
因为容易获得数据,查看代码,实际操练已经学习到的技巧,非常受到大家的欢迎。 - 游乐场:比初学者难度高一点,偶尔会有一些奖金。
·会有一些低风险的数据场景,提供练习。这次李沐的学习课程正是属于这个类型。
3.1.2. 其他竞赛:
- 招募比赛:用于招募员工而设立的比赛。
- 年度比赛:每年3月机器学习比赛,12月算法优化比赛。
- 限定参与比赛:一般一些大师互相切磋技艺,以邀请制形式出现。
3.2. 比赛形式
- 简单竞赛:
·最通常的竞赛形式,通过下载竞赛数据,本地建模,再上传结果的形式。 - 两阶段竞赛:
·分成一阶段和二阶段,根据一阶段的结果决定二阶段的比赛队伍,两个阶段的数据和形式都有可能变化。 - 代码竞赛:
·更为公平形式的竞赛,需要在Kaggle平台的Notebooks编写代码,使用公有云上的CPU和GPU建模比赛。
·往往获胜的队伍,是资源使用效率较高的类型。
3.3. 参加竞赛
3.3.1. 选择比赛
- 在竞赛列表(Competitions listing)寻找感兴趣的竞赛。
- 查看竞赛要求,以及其他信息:
·包括概览、数据、代码、讨论、计分板、规则等。 - 期间提交:过程中根据实际情况,交到数据,参与比赛。
3.3.2. 形成队伍
-
在竞赛期间可以形成队伍:
- 队伍成员:1人队伍和多人队伍。
- 队伍名称:可以修改。
- 合并队伍:在一定时期内可以在人数要求下,合并或者被合并队伍。
- 解散队伍:提交过代码后无法解散队伍。
3.3.3. 做出提交
- 为了得到模型分数,需要做提交数据或提交代码;
- 每天提交次数有限制,一般是5次/日,每次竞赛可能不同;
-
计分板:提交后可以查看成绩;
- 提交预测;
4.1. 上传数据文件:
a. 大多数竞赛会选择的方式;
b. 一般会有两个提交标签,“提交预测(Submit Predictions/Late Submission)”和“我的提交(My Submissions)”;
c. “提交预测”:点击后,按照格式上传文件;
d. “我的提交”:当提交预测多次后,可以根据自己的要求确认哪次提交为最终成绩;
4.2.上传Notebook代码:
a. 在“代码(Code)”页面可以管理Notebook,详细可访问Notebooks;
b. 在该页面点击“新工作簿(New Notebook)”,使用竞赛数据,添加相关代码,进行建模预测;
c. Notebook可以私人化也可以共享化,随时可以切换;
d. 编写完成后,点击“保存版本(Save Version)”,弹窗中选择“保存并执行(Save & Run All)”,再点击“保存(Save)”,即完成一次提交;
e. 当新版本完成后(从头至尾执行完提交代码),导航到Notebook版本页面查看结果,可以选择你的提交文件,点击“提交(Submit)”按钮,即完成代码提交。
3.4. 初学者资源
新用户可以选择Kaggle的机器学习算法入门: