在Kaggle上赢得大数据竞赛的技巧和窍门

解决方案 平台 数据 应用 方法
阅读1906 

原文:The tips and tricks I used to succeed on Kaggle 
作者:Vik Paruchuri 
翻译:雁惊寒

译者注:Kaggle是一个为开发商和数据科学家提供举办机器学习竞赛、托管数据库、编写和分享代码的平台。本文作者讲述了自己在该平台上多次赢得竞赛的成功经验。以下是译文。

我曾经通过参加Kaggle的竞赛来学习机器学习。在2011年,在几乎不懂数据科学的情况下,我参加了第一场竞赛。很快,我就在一场股票交易大赛中获得了大约一百个人中的第五名。在接下来的一年里,我赢得了自动化论文评分和债券价格预测的几场竞赛,并在其他方面也取得了不错的成绩。

Kaggle竞赛需要独特的技能、运气和团队合作才能获胜。各类知识掺杂在一起,因竞赛类型的不同而不同,而且经常会令人感到惊讶。

例如,在人格预测竞赛过程中,我大部分时候都是第一或者第二名,但是,由于在特征选择阶段过度拟合而最终获得了第十八名。在Kaggle的博客上可以找到在竞赛结束时发生的那些看似是半随机变化的好帖子。

在这篇文章中,我将分享自己在Kaggle竞赛中获得成功的诀窍。

坚持不懈,持之以恒

要在Kaggle竞赛中取得成功,首要条件就是坚持不懈。当你看到第一次提交的排名时,很容易会产生气馁的情绪,但你绝对应该继续尝试下去。在一场竞赛中,我在一个主题上差不多尝试了所有的方法。

在我的第一次Kaggle竞赛,“照片质量预测”竞赛中,我最终排在了第50名,我不知道那些顶级对手所做的与我做的有什么不同。

然后,我开始从竞赛中总结经验。在我的第二场竞赛,“算法交易挑战赛”中,成绩比原先好了一点。

从照片质量预测到算法交易,影响竞赛结果发生变化的因素正是学习和坚持不懈。在第一场竞赛中,我并没有花太多的时间,所以结果就体现出来了。

提交错误答案较多,最终的分数当然不会好。你应该在竞赛的过程中阅读尽可能多的文献(和博客文章等等)。只要你学到的新东西可以应用在竞赛中,或者从失败的提交中学到东西(也许某个特定的算法或解法并不合适于这个数据),那么,说明你已经走上正轨。

坚持不懈的动力来自于自身内部。为了让自己愿意去学,你必须要问自己为什么要参加这么一个特定的竞赛。你想要学习吗?你想要通过一个较高的名次来获得某些机会吗?或者你只是想要证明你自己吗?大多数Kaggle竞赛的金钱奖励并不值得消耗大量的时间,所以,除非你清楚地知道你自己想要什么,如何激励自己。对你来说名次重要吗?如果不重要,你可以很轻松的学到一些有趣的东西,这些可能会也可能不会影响成绩,但是如果你想要得第一名,你就不会这样了。

把时间花在数据准备和特征构建上

要取得好的名次,最重要的与数据相关的因素是如何准备数据,以及如何构建特征。算法的选择很重要,无需多言。

你只需要使用直觉和常识,弄清楚什么是有效的,什么是无效的。对竞赛真正有帮助的是创建一个好的交叉验证框架,以便得到可靠的误差估计。

特征构建是数据科学为什么如此有趣、如此有创意,并且与其他一些类型的编程有所不同的原因。

不要忽视特定领域的知识

因为特征构建是一个非常特殊的领域,所以,拥有相关领域的知识对竞赛的帮助很大。

我发现,在竞赛中,你可以通过学习很快地掌握该特定领域的知识。例如,当我在参加Hewlett基金会的ASAP大赛时,我学会了NLP方法。也就是说,你需要快速地掌握你原先不了解的相关领域的特定知识,不然,你就无法在竞赛中与别人竞争。

明智地挑选你的竞赛

你应该在最开始的时候选择竞争比较弱的竞赛。研究性竞赛的竞争选手往往要比大奖赛的少。后来,我发现,经常参加更有挑战性的竞赛对我帮助很大,因为它迫使你学习更多的知识,让你走出舒适圈。

找一个好的团队

形成一个好团队至关重要。在两个不同的竞赛(ASAP和Bond)中,我很幸运地能够与优秀的人士合作,我从他们身上学到了很多。大家往往认为存在这两种人:一种是几乎总是单独工作的人,另一种是几乎总是在团队中和其他人一起工作的人。但如果尝试着把这两种情况结合起来,你将收益更多。你可以从团队工作中学到很多的东西,但是如果你独立工作的话,你可以学到原本需要依赖队友才能完成的东西。

其他的哲学

还有一些不是特别重要,但是在竞赛的时候需要始终牢记在脑子里的事情。

运气会起到作用

我以前曾经提到过,运气也很重要。例如,在一些竞赛中,第三和第四名就差了0.001%。在这一点上,很难说他们谁的方法是更好,但是却只有其中一个被认为是赢家。 我想,这就是Kaggle上的一个事实。

不要因为一个不了解的主题而放弃竞赛

机器学习的伟大之处在于,你可以将类似的技术应用于几乎任何问题上。你无需挑选那些熟悉的或者有特别见解的那个领域问题,坦白地说,独立学一些新知识,做一些新的事情更有意思。当你在某一天突然有了一个好的想法,其他人也许也会想到,但是他们可能要在到第20天或第60天才会去实施。

不要担心Kaggle个人资料

不要因为名次低而担心。有时,你会看到某个有趣的竞赛,但是你可能没办法花太多的时间在这上面,从而无法得到一个好的名次。请不要担心这个。没有人会以名次取人!

对你来说,更重要的是从准备答案的过程中获得经验学到知识,而不是担心你个人资料中的名次会怎么样。

获胜的条目是由许多小步骤组成的

每个获胜的Kaggle条目都是由数十个小的见解组成。如果你做到了上面所有这些,不断地学习,并且不断地迭代你的解决方案,你就会做得更好。

不要停止学习

有数百篇Kaggle教程和文章,还有数千篇有关机器学习的文章、书籍和资源。不要停止学习,不要害怕使用Google来回答你的问题。

此外,Kaggle论坛是一个很好的资源,KaggleNoobs社区也不错。

最后,令人惊叹的Eliot Andres维护了一个可搜索和可排序的Kaggle过去所有解决方案的汇总。一旦你要准备参加竞赛,你可以从中了解到获胜者们是如何做的:Kaggle过去的解决方案。

总结:坚持和学习

强调的两个主要观点是坚持和学习。这两个概念可以很好的体现出我在Kaggle的经历,即使没有赢得竞赛,只要你学到了一些东西,你所花的时间就是值得的。

如果你有兴趣开始使用Kaggle,那么我强烈建议你阅读Kaggle教程。

在Kaggle上赢得大数据竞赛的技巧和窍门

解决方案 平台 数据 应用 方法
阅读1906 

原文:The tips and tricks I used to succeed on Kaggle 
作者:Vik Paruchuri 
翻译:雁惊寒

译者注:Kaggle是一个为开发商和数据科学家提供举办机器学习竞赛、托管数据库、编写和分享代码的平台。本文作者讲述了自己在该平台上多次赢得竞赛的成功经验。以下是译文。

我曾经通过参加Kaggle的竞赛来学习机器学习。在2011年,在几乎不懂数据科学的情况下,我参加了第一场竞赛。很快,我就在一场股票交易大赛中获得了大约一百个人中的第五名。在接下来的一年里,我赢得了自动化论文评分和债券价格预测的几场竞赛,并在其他方面也取得了不错的成绩。

Kaggle竞赛需要独特的技能、运气和团队合作才能获胜。各类知识掺杂在一起,因竞赛类型的不同而不同,而且经常会令人感到惊讶。

例如,在人格预测竞赛过程中,我大部分时候都是第一或者第二名,但是,由于在特征选择阶段过度拟合而最终获得了第十八名。在Kaggle的博客上可以找到在竞赛结束时发生的那些看似是半随机变化的好帖子。

在这篇文章中,我将分享自己在Kaggle竞赛中获得成功的诀窍。

坚持不懈,持之以恒

要在Kaggle竞赛中取得成功,首要条件就是坚持不懈。当你看到第一次提交的排名时,很容易会产生气馁的情绪,但你绝对应该继续尝试下去。在一场竞赛中,我在一个主题上差不多尝试了所有的方法。

在我的第一次Kaggle竞赛,“照片质量预测”竞赛中,我最终排在了第50名,我不知道那些顶级对手所做的与我做的有什么不同。

然后,我开始从竞赛中总结经验。在我的第二场竞赛,“算法交易挑战赛”中,成绩比原先好了一点。

从照片质量预测到算法交易,影响竞赛结果发生变化的因素正是学习和坚持不懈。在第一场竞赛中,我并没有花太多的时间,所以结果就体现出来了。

提交错误答案较多,最终的分数当然不会好。你应该在竞赛的过程中阅读尽可能多的文献(和博客文章等等)。只要你学到的新东西可以应用在竞赛中,或者从失败的提交中学到东西(也许某个特定的算法或解法并不合适于这个数据),那么,说明你已经走上正轨。

坚持不懈的动力来自于自身内部。为了让自己愿意去学,你必须要问自己为什么要参加这么一个特定的竞赛。你想要学习吗?你想要通过一个较高的名次来获得某些机会吗?或者你只是想要证明你自己吗?大多数Kaggle竞赛的金钱奖励并不值得消耗大量的时间,所以,除非你清楚地知道你自己想要什么,如何激励自己。对你来说名次重要吗?如果不重要,你可以很轻松的学到一些有趣的东西,这些可能会也可能不会影响成绩,但是如果你想要得第一名,你就不会这样了。

把时间花在数据准备和特征构建上

要取得好的名次,最重要的与数据相关的因素是如何准备数据,以及如何构建特征。算法的选择很重要,无需多言。

你只需要使用直觉和常识,弄清楚什么是有效的,什么是无效的。对竞赛真正有帮助的是创建一个好的交叉验证框架,以便得到可靠的误差估计。

特征构建是数据科学为什么如此有趣、如此有创意,并且与其他一些类型的编程有所不同的原因。

不要忽视特定领域的知识

因为特征构建是一个非常特殊的领域,所以,拥有相关领域的知识对竞赛的帮助很大。

我发现,在竞赛中,你可以通过学习很快地掌握该特定领域的知识。例如,当我在参加Hewlett基金会的ASAP大赛时,我学会了NLP方法。也就是说,你需要快速地掌握你原先不了解的相关领域的特定知识,不然,你就无法在竞赛中与别人竞争。

明智地挑选你的竞赛

你应该在最开始的时候选择竞争比较弱的竞赛。研究性竞赛的竞争选手往往要比大奖赛的少。后来,我发现,经常参加更有挑战性的竞赛对我帮助很大,因为它迫使你学习更多的知识,让你走出舒适圈。

找一个好的团队

形成一个好团队至关重要。在两个不同的竞赛(ASAP和Bond)中,我很幸运地能够与优秀的人士合作,我从他们身上学到了很多。大家往往认为存在这两种人:一种是几乎总是单独工作的人,另一种是几乎总是在团队中和其他人一起工作的人。但如果尝试着把这两种情况结合起来,你将收益更多。你可以从团队工作中学到很多的东西,但是如果你独立工作的话,你可以学到原本需要依赖队友才能完成的东西。

其他的哲学

还有一些不是特别重要,但是在竞赛的时候需要始终牢记在脑子里的事情。

运气会起到作用

我以前曾经提到过,运气也很重要。例如,在一些竞赛中,第三和第四名就差了0.001%。在这一点上,很难说他们谁的方法是更好,但是却只有其中一个被认为是赢家。 我想,这就是Kaggle上的一个事实。

不要因为一个不了解的主题而放弃竞赛

机器学习的伟大之处在于,你可以将类似的技术应用于几乎任何问题上。你无需挑选那些熟悉的或者有特别见解的那个领域问题,坦白地说,独立学一些新知识,做一些新的事情更有意思。当你在某一天突然有了一个好的想法,其他人也许也会想到,但是他们可能要在到第20天或第60天才会去实施。

不要担心Kaggle个人资料

不要因为名次低而担心。有时,你会看到某个有趣的竞赛,但是你可能没办法花太多的时间在这上面,从而无法得到一个好的名次。请不要担心这个。没有人会以名次取人!

对你来说,更重要的是从准备答案的过程中获得经验学到知识,而不是担心你个人资料中的名次会怎么样。

获胜的条目是由许多小步骤组成的

每个获胜的Kaggle条目都是由数十个小的见解组成。如果你做到了上面所有这些,不断地学习,并且不断地迭代你的解决方案,你就会做得更好。

不要停止学习

有数百篇Kaggle教程和文章,还有数千篇有关机器学习的文章、书籍和资源。不要停止学习,不要害怕使用Google来回答你的问题。

此外,Kaggle论坛是一个很好的资源,KaggleNoobs社区也不错。

最后,令人惊叹的Eliot Andres维护了一个可搜索和可排序的Kaggle过去所有解决方案的汇总。一旦你要准备参加竞赛,你可以从中了解到获胜者们是如何做的:Kaggle过去的解决方案。

总结:坚持和学习

强调的两个主要观点是坚持和学习。这两个概念可以很好的体现出我在Kaggle的经历,即使没有赢得竞赛,只要你学到了一些东西,你所花的时间就是值得的。

如果你有兴趣开始使用Kaggle,那么我强烈建议你阅读Kaggle教程。

在Kaggle上赢得大数据竞赛的技巧和窍门相关推荐

  1. 大数据竞赛平台——Kaggle 入门

    大数据竞赛平台--Kaggle 入门篇 这篇文章适合那些刚接触Kaggle.想尽快熟悉Kaggle并且独立完成一个竞赛项目的网友,对于已经在Kaggle上参赛过的网友来说,大可不必耗费时间阅读本文.本 ...

  2. Windows PC上创建大数据职业技能竞赛实验环境之四--客户端环境的搭建

    Hadoop集群访问客户端 X window Jet brain Idea和客户端开发环境 以上环境我们将在WSL的Ubuntu docker容器中实现,其中对X和Idea的访问,通过Windows ...

  3. 各大数据竞赛 Top 解决方案汇总

    现在,越来越多的企业.高校以及学术组织机构通过举办各种类型的数据竞赛来「物色」数据科学领域的优秀人才,并借此激励他们为某一数据领域或应用场景找到具有突破性意义的方案,也为之后的数据研究者留下有价值的经 ...

  4. GitHub 干货 | 各大数据竞赛 Top 解决方案开源汇总

    AI 科技评论编者按:现在,越来越多的企业.高校以及学术组织机构通过举办各种类型的数据竞赛来「物色」数据科学领域的优秀人才,并借此激励他们为某一数据领域或应用场景找到具有突破性意义的方案,也为之后的数 ...

  5. 阿里巴巴天池大数据竞赛黄金联赛全面开战,全球同步报名,只为寻找最聪明的你!...

    阿里巴巴天池大数据竞赛黄金联赛全面开战,全球同步报名,只为寻找最聪明的你!          天池大数据竞赛是由阿里巴巴集团主办,面向全球新生代力量的高端算法竞赛.通过开放海量数据和"天池& ...

  6. 赛后总结:第四届工业大数据竞赛注塑成型

    赛后总结:第四届工业大数据竞赛注塑成型 原文首发于我的公众号 前言 以第四届工业大数据竞赛虚拟量测任务为例,介绍大家的思路.自己代码乱写,导致不知道最后要复现的是哪个,加上工作上各种人员优化,就没有进 ...

  7. 【数据竞赛】2020年11月国内大数据竞赛信息-奖池5000万

    2020年11月:下面是截止到2020年11月国内还在进行中的大数据比赛题目,非常丰富,大家选择性参加,初学者可以作为入门练手,大佬收割奖金,平时项目不多的,比赛是知识非常好的实践方式,本号会定期发布 ...

  8. 比赛报名 | 第二届ChineseCSCW恒电杯大数据竞赛

    第二届ChineseCSCW Cup大数据竞赛(恒电杯)将于2021年09月16日至18日与第16届全国计算机支持的协同工作与社会计算学术会议 (Chinese Conference on Compu ...

  9. 阿里巴巴大数据竞赛(2014年3月10日到11月)

    大赛简介 阿里巴巴大数据竞赛是阿里巴巴集团主办,在阿里巴巴大数据科研平台--"天池"上开展的,基于天猫海量真实用户的访问数据的推荐算法大赛. 本次比赛的目的是让广大的高校同学在大数 ...

最新文章

  1. 参考答案:05 实对称矩阵与二次型
  2. VA01销售订单增强MV45AFZZ注意点
  3. tensorflow对应的cudnn、cuda版本
  4. c# 批量mqtt_C#使用 MQTTnet 快速实现 MQTT 通信(文末有完整Demo下载)
  5. 机器学习降维算法四:Laplacian Eigenmaps 拉普拉斯特征映射
  6. juc原子类之五:AtomicLongFieldUpdater原子类
  7. os如何读取图片_CV:基于face库利用cv2调用摄像头根据人脸图片实现找人
  8. 设计模式入门-单例模式
  9. 神经网络算法优化_训练神经网络的各种优化算法
  10. 2023最新SSM计算机毕业设计选题大全(附源码+LW)之java文创产品推荐系统设计与实现95ml5
  11. 软件工程 - 个人博客系统 - 可行性分析与需求分析文档
  12. 拼多多和酷家乐面试总结(已拿offer)
  13. 让电机动起来!Arduino驱动步进电机教程
  14. 智能暖风机——FAQ
  15. Reducing Participation Costs via Incremental Verification for Ledger Systems学习笔记
  16. IntelliJ IDEA 2018.3 安装+永久激活[Windows]
  17. 使用Kaiju无组装计算宏基因组数据物种注释相对丰度
  18. consul服务发现入门篇
  19. 谈及区块链,我们脑海当中首先浮现出来的是,狂热、浮躁的场景
  20. 2023计算机毕业设计SSM最新选题之java健身俱乐部5jz0z

热门文章

  1. python standard lib_跟Python Standard Library混个脸熟(一)
  2. python中数字应该用什么表示_Python
  3. 微型计算机的典型应用场景,单片机有哪些类型和应用场景?-MCU解决方案
  4. 苹果手机at系统_iOS14系统苹果手机如何设置充满电提示音?
  5. android自动填充包名,debug/release 修改包名,取不同包名下的agconnect-services.json 文件...
  6. java代码连接数据库
  7. DialogFragment 全屏显示
  8. android gridview 间隔线,Android开发之RecyclerView的间隔线处理
  9. kotlin 反射java类_关于Kotlin反射中实例化类的问题
  10. python定义一个类和子类_Python定义类、定义子类以及super()函数的使用