kaggle实战---

搭建模型

Kaggle号称是全球最大的数据科学家汇聚的平台,高手云集,同时对萌新也很友好。Kaggle网址:https://www.kaggle.com/。目前为止(2016.12)网站有这么几个版块:
1、竞赛competitions
2、数据datasets
3、代码kernels
4、论坛forums
5、工作机会jobs

一、“竞赛”版块

“竞赛”版块是发布竞赛题目和参加竞赛的入口。参加kaggle的竞赛流程基本是:选一个题目>>下载数据>>训练模型>>提交结果>>查看排名>>优化模型(迭代)>>最终提交>>比赛结束。

Kaggle竞赛分类

从参赛者的角度看,竞赛种类有:推荐比赛Featured、人才征募Recruitment、研究型Research、游乐场Playground、入门比赛Getting Started、课业比赛In Class。

推荐比赛Featured是瞄准商业问题带有奖金的公开竞赛。如果有幸赢得比赛,不但可以获得奖金,模型也可能会被竞赛赞助商应用到商业实践中呢。
人才征募Recruitment的竞赛是赞助企业寻求数据科学家、算法设计人才的渠道。只允许个人参赛,不接受团队报名。
研究型Research竞赛通常是机器学习前沿技术或者公益性质的题目。竞赛奖励可能是现金,也有一部分以会议邀请、发表论文的形式奖励。
游乐场Playground里的题目以有趣为主,比如猫狗照片分类的问题。现在这个分类下的题目不算多,但是热度很高。
入门比赛Getting Started给萌新们一个试水的机会,没有奖金,但有非常多的前辈经验可供学习。很久以前Kaggle这个栏目名称是101的时候,比赛题目还很多,但是现在只保留了4个最经典的入门竞赛:手写数字识别、沉船事故幸存估计、脸部识别、Julia语言入门。
课业比赛In Class是学校教授机器学习的老师留作业的地方,这里的竞赛有些会向public开放参赛,也有些仅仅是学校内部教学使用。
除此以外,还有大师邀请赛Master前沿探索型Kaggle Prospect等非公开的竞赛,这里不做介


Kaggle竞赛的排名机制

了解Kaggle的排名机制也会对取得好成绩有所帮助。在比赛结束之前,参赛者每天最多可以提交5次测试集的预测结果。每一次提交结果都会获得最新的临时排名成绩,直至比赛结束获得最终排名。在比赛过程中,Kaggle将参赛者每次提交的结果取出25%-33%,并依照准确率进行临时排名。在比赛结束时,参赛者可以指定几个已经提交的结果,Kaggle从中去除之前用于临时排名的部分,用剩余数据的准确率综合得到最终排名。所以,比赛过程中用于最终排名的那部分数据,参赛者是始终得不到关于准确率的反馈的。这样一定程度避免参赛模型的过拟合,保证评选出兼顾准确率和泛化能力的模型。

二、数据Datasets版块

每一个竞赛题目都有一个数据入口,描述数据相关的信息,与主页上的Datasets选择一个数据其实指向同一个地方。在这里可以下载到提交结果的示范、测试集、训练集。Kaggle的数据以CSV格式最常见,提交的结果也要求是CSV格式。

三、代码Kernels

这是Kaggle最棒的功能!在这里可以看到其他参赛者自愿公开的模型代码,是学习和交流的最佳所在!当然这个版块取名为kernels,意味支持线上调试和运行你的代码,目前支持Python、R,当然也支持像numpy、pandas流行的数据分析库。对那些暂时缺少硬件资源的参赛者,相当于Kaggle提供了一个“云计算”平台不是吗?我在kernels里简单写了一个脚本查看kaggle提供的平台硬件信息:(是说内存有110+G多么?) 总之,可以作为一个备选的计算资源,毕竟一个竞赛的训练集都至少有几十M呢。


“竞赛”、“数据”、“代码”这三个版块的基本情况介绍完毕,后两个版块都是围绕“竞赛”设置的,每个版块都有内嵌的链接跳转到另外的版块,又都发展出独立的功能。快开始一个Kaggle比赛吧!


Kaggle竞赛获奖及取得名次难么?

Kaggle竞赛取得奖金乃至取得好的名次的难度都是非常高的,通常一个项目的参与人数都能达到数千人,而其中只有Top 1可以得到奖金,可以说是高手中的高手。通常来说,几个具有一定水平的业内人士在临时组队的情况下最多也就拿到
20名左右的成绩,想要再往前冲往往都需要有一定程度的默契和合作经验了。


所以,对于以学习与实践为目的的小白选手来说,不要太在意排名,从参赛的过程中不断地提升自己才是最终的目的。当经过一次又一次的洗礼最终取得一个不错的成绩后,相信你也已经成长为可以在相关领域独当一面的人才了。

Kaggle竞赛的认可度高么?

Kaggle作为Data Science业内享有盛名的平台,在业界拥有极高的认可度。所以如果你是想寻找相关行业的工作,那一个漂亮的Kaggle profile将为你的简历增色不少

Quora上的这个问题:How can we use Kaggle? (点击查看)就提到,把Kaggle的项目经验写在Linkedin上可以很直观的展现自己作为一个Data Scientist的能力。

国内亦有一些高级人才对Kaggle有很高的认知度,比如Edward.Fu - 知乎 一直在知乎各个和Kaggle相关的问题下留言寻觅Kaggle比赛经验丰富的人,表示常年有这方面的需求,说明国内对Kaggle的项目经验也是非常认可的。@Lau Phunter在Kaggle 的比赛在 Machine Learning 领域中属于什么地位? 回答下面所说的:

写上参加过Kaggle比赛,我会看简历。
得过一次10%,我会给电话面试。
得过2次或者以上10%,我会给on site面试。
得过一次前10,我们会谈笑风生。

参加Kaggle是一种怎样的体验?

在调研的过程中我采访了几个Kaggler,将他们的亲身经验做了一下总结:

Kaggler A,NYC Data Science Academy team leader/ 美国数据电子交易公司CEO,多次参加Kaggle比赛:

参加此项目,你不可或缺的品质就是持续的热情和坚韧不拔的毅力,即使是像我这样的老司机,和另外两个专攻CS和统计方向的小伙伴组队,一个难度中等的项目做下来也要投入两周,每天工作10h以上。更别提那些有着强迫症,一遍遍修改方案,直至deadline的完美主义大牛了。我相信没有一支夺冠队伍是在提交方案后完全没改过的,顶尖高手的成功不仅是基于他们的专业素养,还有其背后我们看不到的勤奋。

Kaggler B,某知名大数据公司的数据分析师,在美国读统计研究生期间曾通过Kaggle项目提升自己数据操作技能:

我是统计本科申请一年半的统计Master,目前刚刚回国工作。在出国前对Kaggle也是闻所未闻,来到美国以后,在导师的引导下知道了Kaggle这个巨大的学习源,经常在上面学习。在我看来,Kaggle的背书还是非常有用的,排位前几十的都是大神级别,他们从来不需要找工作,都是工作来找他们。而对我们这样的小白,如果没有整块时间找实习或者没有找到合适的实习机会,利用闲暇时间做一些Kaggle项目,写在简历上也能算做一些项目经验,更容易得到面试;同时,在做项目的过程中,实实在在的Skills的提高也能让我们在求职时笔试的表现更好,获得更好的工作机会。

除此之外,知乎上面著名的“体验贴”也给出了很多第一手的体验:参加kaggle竞赛是怎样一种体验? - 大数据 - 知乎。在这个问题下 Naiyan Wang 给出了一个非常详细的答案,同时答主也有一个很好的Profile,文中涉及Kaggle侧重的能力,比赛的要点,以及关键的技术,欢迎大家围观~

Kaggle的竞争非常激烈,正如OFuture T - 知乎 所说,很多时候Kaggle的排名即便是前50位流动性也很大,从前几名跌至几十名不过一两天的事,可想而知想要保住排位要在此付出多大的时间和精力,一次次的推翻自己,碾压别人,真是个磨人的小妖精。。。

Kaggle有什么意义?


  • 从求职者的角度来看:

Kaggle提供了一个非常好的学习平台,在这里你可以接触到真正的业界案例,收获实际的项目经验,在每一个项目中不断挑战自己,甚至在Kaggle榜上占据一席之位,提高自己在业内的知名度,优秀的排位甚至可能带来的非常好的工作机会。同时,也可以认识一群志同道合的人,扩展自己的professional network,与业内最顶尖的高手互动,尤其是很多队伍在比赛结束后都会公开自己的解法,如果这个项目恰好你参与过,为之投入过无数个日日夜夜,此时就是不可多得的学习机会。

对于刚刚进入这个行业的菜鸟而言,参加Kaggle的项目是非常“长见识”的,可能初期的尝试会非常吃力,毕竟都是非常前沿的问题,但是如果能坚持完整的把一个项目做下来,且不说coding能力会有一个很大的提高,在实际案例中解决问题的能力也会得到极大的锻炼,为自己的职业生涯打下一个良好的基础。如果能在Kaggle这种高手云集的比赛中获得一个还不错的成绩,写在简历上足以打动你今后的Boss,跳槽就翻倍的高薪工作指日可待!值得一提的是,虽然是汇集精英的社区,Kaggle的论坛氛围很好,对新人非常友好,大家一定要多看Script多请教!


  • 从留学申请者的角度来看:


对于申请Data Science相关专业的同学来讲,大数据的走红使得Data Science的申请竞争愈演愈烈,因此如何提升背景也是大家非常关心的问题。而Kaggle正好给大家提供了一个非常好的平台,在这里人人有参与项目的机会,无论你的背景是什么,都可以通过选择合适的项目来找到属于自己的位置,利用自己的专业优势,为整个team作出贡献,丰富简历的同时也能学习一些干货,为自己以后的学习打好基础。而其在领域内的知名度足以让你在众多申请者中脱颖而出,绝对是申请利器!

对于新人,如何在Kaggle中提升排位?


  • 选择合适的队友:


由于Kaggle的项目是由公司提供的,涉及各个行业,所以一般都是不同背景的人组队参加(如统计、CS、DS,项目相关领域如生物等)。因此对于新手来讲,很重要的一点就是要抱好大腿,不仅可以蹭到好的排名,还有机会近距离向大牛学习,技能值必然嗖嗖涨。而自己可以从力所能及的工作做起,如清洗数据等等,积累项目经验。

  • 选择“正确”的项目;

首先,选择数据量小的项目,这样不管使用什么算法都不会耗时太久,对机器性能要求也不高,出结果也比较快;其次,选择难度低奖金少的项目,一方面竞争小,另一方面也适合新手;最后,选择参与人数多的项目,毕竟有那么多“僵尸号”撑着。这样下来,基本上认认真真做下来排名都不会太难看。


  • 选择恰当的工具:


我们都知道循序渐进的道理,因此对于刚刚涉猎Kaggle,只是希望从中学习,而不追求高排名的同学,可以先从学习Machine Learning中常用的模型开始,比如Logistic Regression和Random Forest,这两个模型对于大部分问题就够了;基础好的还可以学习一下Gradient Boosting,虽然难度高一点,但是可视化效果会好很多。

当然,说到底,想获得更好的名次,提高自己的Skills才是终极解决方案!


最后是彩蛋时间:

  • Data Science专业群:

我们准备了Data Science相关的专业群,给准备留学申请DS专业的小伙伴一个聚集地。

群里的福利:

✦ Program信息
我们会帮助大家分析最新最热的DS Program申请信息,帮助大家选择最适合自己的项目。

✦ 神秘嘉宾分享
我们会邀请资深数据科学家作为嘉宾来跟大家进行语音分享,谈一谈有关于这个领域背景提升、申请和就业的一系列问题。

✦ 组队打怪
你可以找到志同道合的小伙伴,一起组团做project,互通有无share有用信息,在崎岖的申请路上互相取暖。

详细信息及报名方式查看这里:老师,我也想申请Data Science呢!

  • 学习资源:

给大家汇总了一些超级良心的手把手教程,

在专栏中发表的文章— Kaggle 入门指南 , 详细介绍了Kaggle项目的大致流程,包括Data Exploration, Statistical Test, Data Processing, Feature Engineering, Model Selection, Ensemble Generation每一步该怎么做,有哪些Tips,最后还给出了一个“Home Depot Search Relevance”的案例,拿到它就可以开始自己的Kaggle排位赛了!祝愿大家都能够成为一个优秀的Data Scientist!

接下来是我整理的一些相关的学习资源,大家各取所需。


  • 基础准备篇之Python

怎么用最短时间高效而踏实地学习 Python?

你是如何自学 Python 的?

在线教育网站(Coursera网易云edx课堂腾讯课堂等)有哪些值得推荐的 Python 教程?

  • 基础准备篇之R

业余时间如何学数据分析? 如何高效地学好 R? 好看的数据可视化的图片是怎么样做的?


  • 基础准备篇之Machine Learning

机器学习该怎么入门? 深度学习如何入门? JustFollowUs/Machine-Learnin










猜你喜欢

转载自blog.csdn.net/as472780551/article/details/79826547