介绍python
参加Kaggle比赛,我必须有哪些技能呢?算法
你有没有面对过这样的问题?最少在我大二的时候,我有过。过去我仅仅想象Kaggle比赛的困难度,我就感受惧怕。这种恐惧跟我怕水的感受类似。怕水,让我没法参加一些游泳课程。然而,后来,我获得的教训是只要你不真的跨进水里,你就不知道水有多深。相同的哲学对Kaggle也同样适用。没有试过以前不要下结论。编程
Kaggle,数据科学的家园,为竞赛参与者,客户解决方案和招聘求职提供了一个全球性的平台。这是Kaggle的特殊吸引力,它提供的竞赛不只让你站到不一样的高度思考问题,还提供了可观的奖金。数据结构
然而,人们老是犹豫到底要不要参加竞赛。其中有如下几个缘由:机器学习
1.他们小看了本身的技能,知识和掌握的技术的水平。编程语言
2.无论本身一连串技能的水平如何,他们都选择奖金最高的问题。工具
3.在问题的困难度水平上,他们没有充分发挥出本身的技能水平。学习
我估计,这个问题可能要归咎于Kaggle自身。Kaggle.com没有提供任何信息来帮助人们选择哪些是对于他们自身技能水平而言是最适合的比赛。结果就是对于新手或者中间水平的人来讲,选择一个适合本身的问题来开始成为一个艰苦的工做。编码
你能从这篇文章中学到什么?3d
本文中,咱们会解开根据自身技能,工具和技术组合来选择合适的Kaggle问题的死锁状态。这里咱们会详细说明每一个kaggle问题的困难度,以及要解决这些问题须要的技能水平。
在后面的部分,咱们针对下面的一些状况,定义了正确的方法来选择kaggle问题:
Case 1:我有编程背景,可是是机器学习的初学者。
Case 2:我在数据分析行业以及有两年以上经营,可是不擅长R或者python。
Case 3:我擅长编码和机器学习,须要找一下有挑战的工做。
Case 4:我对于机器学习和编程语言都是新手,可是我想学。
Kaggle问题列表
1.泰坦尼克:机器从灾难中学习
目标:一个开始你的机器学习之旅的经典流行问题。给你一套在船上的乘客属性,让你来预测在船沉没后谁会生存下来。
困难度:
◆ 机器学习技巧:容易
◆ 编程技巧:容易
◆ 专业知识要求:容易
◆ 可用教程:完善
2.Julia初步
目标:这是一个用即将推出的工具Julia来识别谷歌街景图片中的人物的问题。
困难度:
◆ 机器学习技能:容易
◆ 编程技能:中
◆ 专业知识要求:容易
◆ 可用教程:完善
3.数字识别
目标:给你的是一个手写数字的像素数据(图片),你须要判断这是哪一个数字。这是隐马尔可夫模型的经典问题。
各类属性的困难度:
◆ 机器学习技能:中
◆ 编程技能:中
◆ 专业知识需求:容易
◆ 可用教程:有但不是手把手教学
4.当词袋赶上爆米花袋
目标:给你一组影评,你须要在这些叙述中找出其中潜在的情感(情感分析问题)。这个问题的目标是向你介绍谷歌软件包——Word2Vec。
这是一个使人惊异的软件包,能帮助你将单词转换到有限维空间。用这种方法咱们能够仅关注向量就能在词与词之间创建类似性。一个很是简单的例子就是你的算法能够找出类似性如:King – Male + Female结果是Queen。
困难度:
◆ 机器学习技能:难
◆ 编程技能:中
◆ 专业知识要求:容易
◆ 可用教程:有可是不是手把手教学
5.脏文件去噪声
目标:你可能知道一种技术叫OCR。这种技术简而言之就是将手写文档转换成电子文档。然而,这个技术并不完美。这里你的工做就是用机器学习方法让它的结果完美起来。
困难度:
◆ 机器学习技能:难
◆ 编程技能:难
◆ 专业知识要求:难
◆ 可用教程:无
6.旧金山犯罪分类
目标:预测发生在湾区的犯罪的分类类型。
困难度:
◆ 机器学习技能:极难
◆ 编程技能:极难
◆ 专业知识要求:难
◆ 可用教程:无
7.出租车轨迹预测:时间/地点
目标:在同一个数据集上有两个问题。给你一个出租车的控制器,让你来预测出租车将要去哪或者完成一个旅程出租车要花费多少时间。
困难度:
◆ 机器学习技能:容易
◆ 编程技能:难
◆ 专业知识要求:中
◆ 可用教程:有一些可做为比较标准的代码(benchmark code)。
6.Facebook招聘——人仍是机器人
目标:若是你有意愿要了解一个新的领域,你必须解决这个问题。给你一些投标数据,指望你能区分投标人究竟是人仍是机器人。这是当时Kaggle比赛中能够得到数据最丰富的一个数据集。
困难度:
◆ 机器学习技能:中
◆ 编程技能:中
◆ 专业知识要求:中
◆ 可用教程:由于是一个招聘竞赛,没有任何可资利用的支持。
注意:上述说明中没有涵盖提供了奖金的Kaggle竞赛,由于那些竞赛都跟某个领域密切相关。
咱们来看看不一样的人,拥有不一样技术组合,处在人生的不一样阶段如何正确选择一个适合本身的方式来开始Kaggle之旅。
Case 1:我有编程背景,可是是机器学习的初学者。
◆ 第一步:你应该参与第一个Kaggle题目是⑦出租车轨迹预测。缘由是,这个问题有一个复杂的数据集,包括JSON格式,其中一列揭示出租车已经访问过的一系列坐标。若是你能解析这个信息,那么在目标目的地或时间上得到一些初步估计就不须要用到机器学习。这样,你能够凭借你的编程能力在工业界找到实现本身价值的机会。
◆ 第二步:你下一步应该作的是:①泰坦尼克。缘由是,你如今应该已经明白如何操做一个复杂数据集。这样,如今正是搞一搞纯粹的机器学习的好时机了。有很丰富的解决方案和脚本能够利用,你应该能建立一个很好的解决方案。
◆ 第三步:你如今应该尝试大一点的东西了。试试Facebook招聘。这会帮助你意识到理解某个领域的知识如何在机器学习上帮助你获得最好的结果。
一旦你完成了上述全部的尝试,你尝试Kaggle上任何一个问题都没有问题可。
Case 2:我在数据分析行业以及有两年以上经营,可是不擅长R或者python。
◆ 第一步:你的第一个尝试应该是①泰塔尼克。缘由是,你已经了解如何建立预测算法。你如今应该努力学习像R和Python这样的编程语言。有很丰富的解决方案和脚本能够利用的条件下,你应该能用R和Python完成不一样的模型。这个问题也能够帮你了解一点更高级的机器学习算法。
◆ 第二步:下一步是Facebook招聘。缘由是,给你简单的数据结构和丰富的数据内容,你将能够结合正确的表,在这个问题上给出预测算法。这会帮助你意识到理解某个领域的知识如何在机器学习上帮助你获得最好的结果。
建议:你如今要准备好离开你待得很是舒服的领域,尝试彻底不一样的东西。阅读一些问题,好比糖尿病视网膜病变检测,Avinto上下文广告点击,犯罪分类并找到你感兴趣的领域。如今尝试将你学到的任何知识都应用一下。
如今是时候尝试一下对更复杂的东西编程了。试一下出租车轨迹预测问题或者脏文件去噪声问题。一旦你各项准备都齐全了,你能够尝试Kaggle上的任何问题。
Case 3:我擅长编码和机器学习,须要找一下有挑战的工做。
◆ 第一步:你在Kaggle上有不少选择。首选是掌握一种新语言好比Julia。你能够开始迈出Julia的第一步。缘由是,这将在Python和R以外显示Julia的强大之处。
◆ 第二步:第二个如今就是发展另外一个领域的技能。你能够尝试Avito竞赛、搜索相关或者Facebook——人vs机器人
Case 4:我对于机器学习和编程语言都是新手,可是我想学。
◆ 第一步:你应该用①泰塔尼克来做为你Kaggle之旅的开始。缘由是,你的第一步应该是学习编程语言如R和Python。有不少可资利用的解决方案和脚本的状况下,你应该能用R和Python创建不一样的模型。这个问题也帮助你了解一些机器学习算法。
◆ 第二步:而后你应该着手的是:Facebook招聘。缘由是,给你简单的数据结构和丰富的数据内容,你将能够结合正确的表,在这个问题上给出预测算法。这会帮助你意识到理解某个领域的知识如何在机器学习上帮助你获得最好的结果。
一旦你完成了这些,你应该在Kaggle选择任何一个你感兴趣的问题了。
Kaggle上公平竞争中的一些骇客方法
这不是一个骇客方法的彻底列表,只不过想要给你一个好的起点。彻底的列表值得另开一个帖子来讲明。
1.确认你在最后期限以前提交了一个解决方案(即便最简单的提交也算完成任务),若是你将来还但愿继续参加这个竞赛的话。
2.在你处理数据以前,了解该领域的专业知识。例如,在机器人vs人的比赛中,开始你的数据之旅前,你须要了解在线竞标平台的知识。
3.本身作一个模拟Kaggle竞赛评分标准的评估算法。一个简单的10折交叉验证一般就能够很好的工做。
4.从训练数据中切割出尽量多的特征——特征工程一般能将你的成绩从40%的位置推升到前10%。
5.单纯一个模型一般不能把你推升到前10.你须要作不少不少模型,而后将他们集成起来。能够是许多不一样模型的集成,也能够是同一算法的不一样变量集。
结束语
在参加Kaggle比赛后,我意识到不少好处。我已经习惯了R和python。我相信这是学习编程语言方面最好的方式。另外,在论坛中给人们交互会帮助你加深对机器学习和领域知识的理解。
在本文中,咱们介绍了各类Kaggle问题,将他们的基本属性按照难度水平作了区分。咱们也列举了真实生活中的各类情形,阐述了参加Kaggle比赛的各类方法。
你怎么参加Kaggle比赛呢?你可否看到参加的各类巨大益处呢?有什么想法,欢迎在以后评论。
做者:
TAVISH SRIVASTAVA
连接:
https://www.analyticsvidhya.com/blog/2015/06/start-journey-kaggle/