Kaggle | (一)入门指南
一、Kaggle是什么?
Kaggle成立于2010年,是一个进行数据发掘和预测竞赛的在线平台。从公司的角度来讲,可以提供一些数据,进而提出一个实际需要解决的问题;从参赛者的角度来讲,他们将组队参与项目,针对其中一个问题提出解决方案,最终由公司选出的最佳方案可以获得5K-10K美金的奖金。
除此之外,Kaggle官方每年还会举办一次大规模的竞赛,奖金高达一百万美金,吸引了广大的数据科学爱好者参与其中。从某种角度来讲,可以把它理解为一个众包平台,类似国内的猪八戒。但是不同于传统的低层次劳动力需求,Kaggle一直致力于解决业界难题,因此也创造了一种全新的劳动力市场——不再以学历和工作经验作为唯一的人才评判标准,而是着眼于个人技能,为顶尖人才和公司之间搭建了一座桥梁。
输入https://www.kaggle.com/即可进入Kaggle主页,网站有这么几个版块:
1、竞赛competitions
2、数据datasets
3、代码kernels
4、讨论区 Discussion
5、在线课程学习learn
二、Kaggle的竞赛模式是什么样的?
Kaggle上的竞赛有各种分类,例如奖金极高竞争激烈的的 “Featured”,相对平民化的 “Research”等等。但整体的项目模式是一样的,就是通过出题方给予的训练集建立模型,再利用测试集算出结果用来评比。同时,每个进行中的竞赛项目都会显示剩余时间、参与的队伍数量以及奖金金额,并且会实时更新选手排位。在截止日期之前,所有队伍都可以自由加入竞赛,或者对已经提交的方案进行完善,因此排名也会不断变动,不到最后一刻谁都不知道花落谁家。
由于这类问题并没有标准答案,只有无限逼近最优解,所以这样的模式可以激励参与者提出更好的方案,甚至推动整个行业的发展。
Kaggle竞赛分类
从参赛者的角度看,竞赛种类有:推荐比赛Featured、人才征募Recruitment、研究型Research、游乐场Playground、入门比赛Getting Started、课业比赛In Class。
Kaggle比赛分类
- 推荐比赛Featured:瞄准商业问题带有奖金的公开竞赛。如果有幸赢得比赛,不但可以获得奖金,模型也可能会被竞赛赞助商应用到商业实践中呢。
-
人才征募Recruitment:赞助企业寻求数据科学家、算法设计人才的渠道。只允许个人参赛,不接受团队报名。
研究型Research竞赛通常是机器学习前沿技术或者公益性质的题目。竞赛奖励可能是现金,也有一部分以会议邀请、发表论文的形式奖励。 - 游乐场Playground:题目以有趣为主,比如猫狗照片分类的问题。现在这个分类下的题目不算多,但是热度很高。
- 入门比赛Getting Started:给萌新们一个试水的机会,没有奖金,但有非常多的前辈经验可供学习。很久以前Kaggle这个栏目名称是101的时候,比赛题目还很多,但是现在只保留经典的入门竞赛:手写数字识别、沉船事故幸存估计、脸部识别。
- 课业比赛In Class:是学校教授机器学习的老师留作业的地方,这里的竞赛有些会向public开放参赛,也有些仅仅是学校内部教学使用。
Kaggle竞赛的排名机制
在比赛结束之前,参赛者每天最多可以提交5次测试集的预测结果。每一次提交结果都会获得最新的临时排名成绩,直至比赛结束获得最终排名。在比赛过程中,Kaggle将参赛者每次提交的结果取出25%-33%,并依照准确率进行临时排名。在比赛结束时,参赛者可以指定几个已经提交的结果,Kaggle从中去除之前用于临时排名的部分,用剩余数据的准确率综合得到最终排名。所以,比赛过程中用于最终排名的那部分数据,参赛者是始终得不到关于准确率的反馈的。这样一定程度避免参赛模型的过拟合,保证评选出兼顾准确率和泛化能力的模型。
三、数据Datasets版块和代码Kernels板块介绍
数据Datasets版块
每一个竞赛题目都有一个数据入口,描述数据相关的信息,与主页上的Datasets选择一个数据其实指向同一个地方。在这里可以下载到提交结果的示范、测试集、训练集。Kaggle的数据以CSV格式最常见,提交的结果也要求是CSV格式。
比赛数据代码Kernels板块
这是Kaggle最棒的功能!在这里可看到其他参赛者自愿公开的模型代码,是学习和交流的最佳所在!取名为kernels意味支持线上调试和运行代码,目前支持Python、R。对那些暂时缺少硬件资源的参赛者,相当于Kaggle提供了一个“云计算”平台,可以作为一个备选的计算资源。
四、如何上手Kaggle?
想要真正参与Kaggle,参赛者最好具有统计、计算机或数学相关背景,有一定的coding技能,对机器学习和深度学习有基本的了解,Kaggle任务虽然不限制编程语言,但绝大多数队伍会选用Python和R,所以至少熟悉其中一种。
如果从未独立做过一个项目,最好从练习赛开始熟悉。因为竞赛模式中的任务是公司悬赏发布的实际案例,并没有标准的答案;而练习赛不仅项目难度低,而且是有官方给出的参考方案的,大家可以用来对比改善自己的测试结果,从中进行提高。所以建议感兴趣的同学先去独立做一下101和playground的训练赛。
1. Titanic(泰坦尼克之灾)
中文教程: 逻辑回归应用之Kaggle泰坦尼克之灾
英文教程:An Interactive Data Science Tutorial
2. House Prices: Advanced Regression Techniques(房价预测)
中文教程:Kaggle竞赛 — 2017年房价预测
英文教程:How to get to TOP 25% with Simple Model using sklearn
3. Digital Recognition(数字识别)
中文教程:大数据竞赛平台—Kaggle 入门
英文教程:Interactive Intro to Dimensionality Reduction
比赛流程
比赛流程五、入门Kaggle可参考的资料
机器学习自学指南
如何用3个月零基础入门机器学习?
机器学习该怎么入门?
机器学习必备资源-如何开始机器学习竞赛
机器学习/深度学习入门资料汇总
机器学习算法汇总及选择
特征工程到底是什么?
XGBoost调参技巧(二)Titanic实战Top9%
机器学习特征工程实用技巧大全
Kaggle 入门指南
分分钟带你杀入Kaggle Top 1%
Kaggle 首战拿银总结 | 入门指导 (长文、干货)
Kaggle Titanic 生存预测 -- 详细流程吐血梳理
Kaggle入门
Kaggle 比赛整理汇总
Kaggle Titanic 生存预测(Top1.4%)完整代码分享