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
来源:简书
简书著作权归作者所有,任何形式的转载都请联系作者获得授权并注明出处。
Kaggle比赛:从何着手?的更多相关文章
- Kaggle比赛冠军经验分享:如何用 RNN 预测维基百科网络流量
Kaggle比赛冠军经验分享:如何用 RNN 预测维基百科网络流量 from:https://www.leiphone.com/news/201712/zbX22Ye5wD6CiwCJ.html 导语 ...
- Kaggle比赛总结
做完 Kaggle 比赛已经快五个月了,今天来总结一下,为秋招做个准备. 题目要求:根据主办方提供的超过 4 天约 2 亿次的点击数据,建立预测模型预测用户是否会在点击移动应用广告后下载应用程序. 数 ...
- kaggle比赛流程(转)
一.比赛概述 不同比赛有不同的任务,分类.回归.推荐.排序等.比赛开始后训练集和测试集就会开放下载. 比赛通常持续 2 ~ 3 个月,每个队伍每天可以提交的次数有限,通常为 5 次. 比赛结束前一周是 ...
- Kaggle比赛(一)Titanic: Machine Learning from Disaster
泰坦尼克号幸存预测是本小白接触的第一个Kaggle入门比赛,主要参考了以下两篇教程: https://www.cnblogs.com/star-zhao/p/9801196.html https:// ...
- Kaggle比赛(二)House Prices: Advanced Regression Techniques
房价预测是我入门Kaggle的第二个比赛,参考学习了他人的一篇优秀教程:https://www.kaggle.com/serigne/stacked-regressions-top-4-on-lead ...
- 我的第一个 Kaggle 比赛学习 - Titanic
背景 Titanic: Machine Learning from Disaster - Kaggle 2 年前就被推荐照着这个比赛做一下,结果我打开这个页面便蒙了,完全不知道该如何下手. 两年后,再 ...
- Kaggle比赛NCFM图像分类任务简介
为了保护和监控海洋环境及生态平衡,大自然保护协会(The Nature Conservancy)邀请Kaggle社区的参赛者们开发能够出机器学习算法,自动分类和识别远洋捕捞船上的摄像头拍摄到的图片中鱼 ...
- kaggle比赛之悟
一.模型与特征哪个重要? 参与Sberbank Russian Housing Market比赛,一开始使用sklearn的岭回归函数Ridge(),残差值一直是0.37左右,然后同样的特征又使用了X ...
- Kaggle 比赛项目总结(项目流程)
一.EDA(Exploratory Data Analysis) EDA:也就是探索性的分析数据 目的: 理解每个特征的意义: 知道哪些特征是有用的,这些特征哪些是直接可以用的,哪些需要经过变换才能用 ...
随机推荐
- js中定义配置文件
var config = (function($){ $.testConfig = { contextPath:'http://localhost:8080/test', maps:[ {id:'ma ...
- halcon之 distance_transform
Compute the distance transformation of a region 该算子的作用是计算对region转换距离.该算子的形式为distance_transform(Reg ...
- laravel5.8笔记五:基类控制器和基类模型
建立基类的目的就是为了方便继承.比如:Admin模块访问,是否登陆.检测登陆可以写到基类里面 控制器基类 原始基类:app\Http\Controllers\Controller.php,我们下面要做 ...
- Laravel 添加路由文件
在laravel 5.4中的routes文件夹里面默认有两个路由文件web.php和api.php. 新建路由文件 我们在routes文件夹下多创建一个admin.php文件作为管理后台的路由 修改R ...
- ActiveQt框架 禁止弹出ActiveX控件交互提示
重点重写QAxBindable的createAggregate() 参考Qt例子: qtactiveqt\activeqt\opengl\glbox.cpp
- Android 官方独立 adb / fastboot 工具包
https://dl.google.com/android/repository/platform-tools-latest-darwin.zip https://dl.google.com/andr ...
- 【CF429E】Points and Segments 欧拉回路
[CF429E]Points and Segments 题意:给你数轴上的n条线段$[l_i,r_i]$,你要给每条线段确定一个权值+1/-1,使得:对于数轴上的任一个点,所有包含它的线段的权值和只能 ...
- 在elementUI中使用 el-autocomplete 实现远程搜索的下拉框
参考;https://blog.csdn.net/qq_37746973/article/details/78402812?utm_source=blogxgwz1 https://blog.csdn ...
- zoj 3871
貌似这道题某人已经扔给我一个多星期了(雾) 首先要知道这样一点:凸包的面积可以直接用线段的有向面积和求得. 自己口胡的证明:单纯一条线段自身的叉积就是到原点与这条线段构成三角形的面积吧,那么加加减减之 ...
- Ubuntu16.04 本地提权漏洞复测过程
一.漏洞概述 Ubuntu 16.04 版本且unprivileged_bpf_disable 权限没有关闭的情况下就会存在 提权漏洞查看方式:1,cat /proc/version 查看系统版本 2 ...