Kaggle比赛:从何着手?
介绍
参加Kaggle比赛,我必须有哪些技能呢?
你有没有面对过这样的问题?最少在我大二的时候,我有过。过去我仅仅想象Kaggle比赛的困难度,我就感觉害怕。这种恐惧跟我怕水的感觉相似。怕水,让我无法参加一些游泳课程。然而,后来,我得到的教训是只要你不真的跨进水里,你就不知道水有多深。相同的哲学对Kaggle也一样适用。没有试过之前不要下结论。
Kaggle,数据科学的家园,为竞赛参与者,客户解决方案和招聘求职提供了一个全球性的平台。这是Kaggle的特殊吸引力,它提供的竞赛不仅让你站到不同的高度思考问题,还提供了可观的奖金。
然而,人们总是犹豫到底要不要参加竞赛。其中有以下几个原因:
1.他们小看了自己的技能,知识和掌握的技术的水平。
2.不管自己一连串技能的水平如何,他们都选择奖金最高的问题。
3.在问题的困难度水平上,他们没有充分发挥出自己的技能水平。
我估计,这个问题可能要归咎于Kaggle自身。Kaggle.com没有提供任何信息来帮助人们选择哪些是对于他们自身技能水平而言是最适合的比赛。结果就是对于新手或者中间水平的人来说,选择一个适合自己的问题来开始成为一个艰苦的工作。
你能从这篇文章中学到什么?
本文中,我们会解开根据自身技能,工具和技术组合来选择合适的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/
作者:马力_Panotech
链接:https://www.jianshu.com/p/f648de991d51
来源:简书
简书著作权归作者所有,任何形式的转载都请联系作者获得授权并注明出处。