Kaggle是一个全球知名的数据科学竞赛在线平台。由Anthony Goldbloom和Ben Hamner创立于2010年,是一个进行数据发掘和预测竞赛的在线平台,也是全球最大的数据科学社区和数据科学竞赛平台,2017年被Google收购。
Kaggle竞赛由于题目有趣,不限年龄、背景和国籍,入门快且含金量高等优势,倍受留学生们的热捧,不止中学生可以参加,所有计算机爱好者,甚至计算机领域的从业人员都可以报名。
一段带奖金高难度的Kaggle比赛的 Prize Winner经历并不会比一段互联网大厂数据分析实习经历逊色,Kaggle项目可以直观地展现你的数据分析能力。Kaggle作为数据科学行业极富盛名的平台,在业界具有极高的认可度。
得益于Kaggle的海量数据集和开放性,它还成为了一个非常棒的教学实践平台,吸引到哥大、纽大、上交大等设立了相关领域的Capstone Project,以及哈佛、牛津、斯坦福等开设Kaggle-in-Class的课程项目。
此外,众多国际大型和重要学术组织、机构,如IEEE、NASA、CERN等都在Kaggle上举办或多次支持(公开数据集)了不同类型的竞赛,帮助他们自己或合作方解决棘手的科研问题。
竞赛介绍
适合人群
对数据科学、数据挖掘、机器学习感兴趣的高中生
有一定计算机背景的大学生
参加Kaggle还是需要有一定编程基础,同时对现实问题有浓厚兴趣,并擅长运用所学知识去解决这些问题的学生。
参赛时间
全年滚动,随时可以报名
比赛形式
- Classic:在比赛开始后,用户可以访问完整的数据集。并可以选择在本地或在线进行建模、预测生成预测文件,最后提交预测结果。目前大多数比赛采取本形式。
- Two-stage:分为第一阶段和第二阶段,第二阶段建立在第一阶段的结果上,第一阶段完成才可参加第二阶段。
- Kernels:参赛者必须在线提交代码,更加公平,使每个参赛者都使用相同配置的电脑。
竞赛分类
面向初学者
- Getting Started:适合基础入门选手,与Featured竞赛结构类似,但并没有奖金,让初学者体会机器学习、积攒经验为主;
- Playground:有趣的比赛,主要看创意,而非解决具体的研究问题
面向竞赛者
- Recruitment:赞助商为招聘数据科学家而设立的比赛,适合想要去发布公司求职的人,以各大公司需要招募相关职业为主;
- Featured:为解决商业问题,适合数据科学高手参与,通常是由公司,组织或政府等赞助的,奖金池最大;
- Research:解决学界前沿问题,同样适合数据科学高手参与,以研究为主要方向的竞赛,奖金相比Featured较少;
- Masters:大师级别比赛的,难度最高,项目也最少
竞赛流程
- 注册账号(一人只能有一个账号)
- 选择想要参赛的项目
- 下载题目的数据
- 时间截止,评出最优者
- 获奖的队伍必须提交源代码
注:可以以个人或组队的形式参加比赛,在参赛时可以相互分享经验。
竞赛时间及奖项
kaggle的评价体系是基于三个维度的:竞赛、代码以及社区参与。根据这三个维度把kaggle的用户分成了5个等级:
- Novice :初始等级,只要注册就算
- Contributor :添加资料信息,并且进行了各种指定的动作即可。如上两个等级没有考虑到用户的比赛成绩和社区声望。
- Expert :获得两枚竞赛铜牌;5枚代码铜牌;以及50枚讨论铜牌
- Master :获得一枚竞赛金牌,两枚竞赛银牌;10枚代码银牌;50枚讨论银牌以及总共200枚讨论奖牌
- Grandmaster :获得5枚竞赛金牌,solo竞赛金牌;15枚代码金牌;50枚讨论金牌以及总共500枚讨论奖牌。
想要在Kaggle竞赛中取得名次,难吗?
想在Kaggle竞赛中名列前茅的难度非常大;因为一个竞赛项目往往参与人数可以达到数千人,但只有Top 1可以得到奖金。
根据以往经验来看,就算是有一定知识储备的业内选手组队,也很难在初次比赛中取得好名次;由于Kaggle的获奖难度比较大,针对性的密集备赛还是很有必要的。
比赛技能要求
编程语言
kaggle 挑战赛
最基础的入门学者也得先学会初步使用一门编程语言。对于毫无基础的新手,推荐使用Python,因为Python作为一种强大的胶水语言,可以迅速入门。
探索数据
kaggle 挑战赛
光有编程语言是不够的,还需要学习如何探索性分析你手上的数据,这是进入数据科学的第一步,因为通常到手的数据都多到不可思议,你要学会取舍和迅速获取最有用的信息。
模型训练
kaggle 挑战赛
熟悉使用机器学习库,培养良好的习惯,为之后的工作做铺垫。
实战
kaggle 挑战赛
从初级可以逐渐增加难度。
竞赛内容
Kaggle竞赛不止中学生可以参加,所有计算机爱好者,甚至计算机领域的从业人员都可以报名,再加上它需要你在提供的大型数据库里找到命题所需要的数据,还需要找到最合适的方式,将所需数据整编出来,想从中脱颖而出确实有一定难度。可以看下面的例题:
这道题说Twitter、微博等社交媒体上有时会有用户发布报警求助信息,因此社交媒体希望建立一个灾难预警识别系统,可以快速判断哪些信息是需要第一时间进行消息扩散救援的。当今社交媒体数据量非常庞大,想在数以万计的数据中找到关键信息,对挑战者而言是有难度的一件事。
赛题示例
- Allstate索赔预测挑战 - 使用客户的购物历史记录来预测他们购买的保险单
- 有害评论分类挑战 - 预测维基百科上有害评论的存在和类型
- Zillow奖 - 构建一个机器学习算法,可以挑战Zesow,Zillow房地产价格估算算法
- 谷歌地标检索挑战 - 如果有图像,您能在数据集中找到所有相同的地标吗?
- 右鲸识别 - 识别航空照片中濒临灭绝的露脊鲸
- 大规模分层文本分类 - 将维基百科文档分类为约300,000个类别之一
- 泰坦尼克号:从灾难中进行机器学习,预测泰坦尼克号的生存几率
- 房价预测:回归方法
- 猫与狗:创建一种算法去区分猫与狗
- 纽约出租车行程持续时间:通过数据改善乘车时间预测
- 商店销售预测
- 新用户预定预测