作者:Naiyan Wang
链接:http://www.zhihu.com/question/24533374/answer/34631808
来源:知乎
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

先贴下Kaggle Profile以示诚意: Winsty | Kaggle 我是KDD Cup专业户,虽然每年做的都不是特别好。。。和一些Kaggle专业户们无论从数量还是质量上都差了好多。不过我一直觉得Kaggle在我PhD期间扮演了一个非常重要的角色。下面列几个我觉得比较重要的问题自问自答下哈

Kaggle的比赛究竟锻炼的是什么能力?
首先说,绝大部分的Kaggle比赛是 Data Mining(DM)比赛(除少数是和Discrete Optimization还有Computer Vision(CV) 有关),最重要的是和 Machine Learning(ML)关系不大。这是很多人一个误区,往往希望在Kaggle上学到很多ML的知识。Kaggle教给我的第一件事情,就是让我清晰领会到了这两者之间的不同:ML一般从模型或者算法出发,讲的是模型或者算法本身存在的不合理的地方,然后提出新的假设,从而去优化模型或算法。在这个过程中并不针对某一个具体的特殊的问题。而DM恰恰相反,它是从数据本身问题本身出发,希望针对问题的特性来设计最适合的方案。关键是在于对问题和数据的理解。之前总是觉得,DM/CV的paper都好水,到处找一个应用套。在我想明白这个问题之后,我就开始懂得欣赏DM/CV的paper。

其次,我觉得在一个DM的比赛中,最能锻炼到的是对于数据的"嗅觉"。举一个最有趣的例子,往往在比赛中会存在Data Leakage的情况,也就是说,某些和label相关的信息不小心会泄漏在feature中。有人通过这样的feature取得了很好的成绩之后,往往有人觉得非常鄙视。当然我不是说Data Leakage是一件好事情,但是在这背后往往隐藏的是发现leakage的人对于数据本身深刻的认识。这并不是每个人都能做到的。换句话讲,就算没有leakage,这群人还是会排名很前。在Kaggle的比赛中,能收获最大的就是这种嗅觉。这其实也把我自己训练成了一个data believer:也许一次两次的巧合真的是意外,但是如果巧合总是持续发生,那么背后一定有一个原因。

怎样才能做好Kaggle的比赛?
第一点也是最重要的一点就是 专注,专注,再专注。其实说来惭愧,我在这点上做得很不好。
第一年开始高歌猛进了一段,中间卡住,也是能力不足,然后就放弃了。
第二年抱学长大腿侥幸成绩不错,其实个人来讲没有做出太大贡献。先是去写了一个NIPS,然后又去处理了一些私事。
第三年做到一半,很偶然地被拉去百度做了ImageNet的比赛,精力主要就放到了ImageNet上。坑了队友。。。
所以其实这三年,离我自己的期待都有一定的距离,我也很清楚问题出在哪里。希望明年能真正focus一次吧。

第二点,永远不要放弃。希望总存在于绝望之后。每个比赛都会有一个瓶颈期。耐心地去突破它后,就是一片开阔天空。

第三点,切记只看不做。很多人只喜欢纸上谈兵,武断觉得这个问题,或者这个数据就应该是怎样。很多数据的特质都是要真正动手做进去才能发现其中的奥妙,针对这些特质设计的一些Feature或者Model,往往都能带来极大的提高。

第四点,才是多看,尤其是在比赛结束之后。很多leader会在比赛结束之后部分甚至全部地公布自己的解法。这个时候返回去看看在比赛中自己忽略掉了什么地方,才是成长最最重要的。第一年的比赛教给了我在一个实际的推荐系统里session的重要性。第二年的比赛教给了我机器不是万能的,人肉一些规则往往更有效。 每一年其实都对实际的Data Mining问题有新的认识,也更清楚了哪些paper是真的work,哪些是在灌水。这其实也就是我来做比赛的最大目的吧。

技术方面上什么最关键?
前面提到Kaggle主要是以Data Mining的比赛为主,那么这个答案就非常直接了: Feature Engineering 无数经验告诉我们,做Kaggle比赛如果是抱着Machine Learning的态度,沉迷于facny的模型而忽略数据本身,一定会死得很惨很惨!

当然,基本的ML知识还是有的。在比赛中,最常用的分类器一般是Gradient Boosting Tree(GBDT)和Random Forest(对,你没看错,不是那个在教科书中推Dual时让很多人痛不欲生的SVM)一些常见的预处理技巧,比如PCA,KMeans,TF/IDF,Hashing等等都还是必须的。这里就不展开讲了。

最后,但是非常关键的一点是 Ensemble 从KDD Cup到Imagenet,我从来没见过ensemble不会改善结果的情况,只是多与少的问题。不做ensemble就意味着你自己告别了一大块宝藏。

总结
我觉得Kaggle是一个对于每个想成为所谓的Data Scientist的同学最好的试炼厂。在这里,你就会知道课上学到的那些东西和能解决一个实际问题所需要的能力的差距。更何况,在学校里往往是拿不到任何大规模的数据。绝大多数课堂上用的还是只有几百个几千个数据的UCI dataset。Kaggle是缩小这个gap最好的一个地方。

最后,希望大家在Kaggle上都玩得愉快~~

作者:匿名用户
链接:http://www.zhihu.com/question/24533374/answer/34602798
来源:知乎
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

下面是我的一些个人经验:
1. 一定做Ensemble,甚至是对submissions做ensemble。
2. 目的如果单纯是拿好的排名,那么就找人多的比赛参加,因为那些参加人数上千的比赛里面大批僵尸参赛者,超过他们就可以进25%了。
3. 对大多数比赛来说,Feature Engineering比选用什么模型更重要
4. 多看论坛,大家会在比赛进行中讨论很多泛泛的思路,对自己可能有帮助。有时候会有人发布比较好的Beat the benchmark代码,仔细思考为什么这个模型能够work,在上面涂涂改改有时候效果更好。
5. 永远相信自己的cross validation结果,甚于public leaderboard,结束前后的榜单常常震动巨大,具体例子参见 Description - Africa Soil Property Prediction Challenge 和 Description - Higgs Boson Machine Learning Challenge
6. 每次比赛最有价值的东西就是结束之后的方法分享帖,大家的方法都很不一样,挑一个说得比较全面清晰的方法,自己尝试重现一个一样或者接近的效果,然后再尝试改进它,这个过程能学到非常多东西。

作者:H Hsu
链接:http://www.zhihu.com/question/24533374/answer/34649594
来源:知乎
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

同意@Naiyan Wang的观点,大部分kaggle比赛和machine learning关系不大。大部分比赛还是很brute force的方法,个人看法能拿到10%并不是很困难,都是一些常见的featuer处理方法(Hash, BOW, TFIDF, Categorization, Normalization),加几个常见模型(RF, GBDT, LR),cross-validation调参数,最后ensemble一下。最好有很好的机器(主要是ram,以及tree-based model并行),这样就不用太担心online training的问题,大部分的lib也能用了。

不过如果想拿top10还是有一定难度,大部分冠军得主其实都有相关领域从业经验,有一些domain knowledge,对问题的思考也会更本质一点。

总体而言,我觉得参加kaggle还是很不错的体验,有一些帮助,特别是比赛结束后大家解法的分享和探讨可以学到一些东西(贴一个地址 Kaggle Competition Past Solutions。)但honestly,我觉得kaggle更适合机器学习入门者,对这个领域有兴趣的同学们来产生兴趣,锻炼实际能力,感受一下实际的数据集(虽然仍然有些不一样),对从业者或者researcher们而言帮助不是很大。

参加kaggle竞赛是怎样一种体验?相关推荐

  1. 信息学复赛用linux,参加过信息学竞赛是怎样一种体验?

    原标题:参加过信息学竞赛是怎样一种体验? 一 父母眼中只有高考,认为我搞信息学竞赛有点不务正业. 亲戚眼中我是个修电脑的.尽管我的确会修电脑,但我不喜欢这个称号. 同学眼中我就是个装逼的.就是因为有时 ...

  2. 【陆勤阅读】参加kaggle数据挖掘竞赛是怎样一种体验?

    转载自: http://www.wtoutiao.com/p/mf57Hk.html 数据科学自媒体 · 2015-08-02 05:46 先贴下Kaggle Profile以示诚意(https:// ...

  3. 第一次参加kaggle竞赛:Happywhale - Whale and Dolphin Identification(ID识别问题:top9.4% 150/1558)

    一.ID识别问题 ID1: ID2: 下图是哪个ID: 二.训练数据分布 51033张训练图片, 27956张测试图片,public LB用了24%的测试图片,最后结果以private LB的结果为准 ...

  4. 关于Kaggle竞赛

    这次酝酿了很久想给大家讲一些关于Kaggle那点儿事,帮助对数据科学(Data Science)有兴趣的同学们更好的了解这个项目,最好能亲身参与进来,体会一下学校所学的东西和想要解决一个实际的问题所需 ...

  5. 我,14岁初中生,从零开始拿到了Kaggle竞赛冠军

    视学算法报道 机器之心编辑部 因为对数学感兴趣,勇敢的少年决定投身 Kaggle. 知乎上有这样一个问题已经收到了超过 700 条回答. 在这之下有人冷嘲热讽,有人给出了鼓励和建议.从人们回答的时间来 ...

  6. 从零开始拿到了Kaggle竞赛冠军

    点上方计算机视觉联盟获取更多干货 仅作学术分享,不代表本公众号立场,侵权联系删除 转载于:机器之心 AI博士笔记系列推荐 周志华<机器学习>手推笔记正式开源!可打印版本附pdf下载链接 因 ...

  7. 从零开始拿到了Kaggle竞赛冠军--学习笔记(不是本人)

    本文转载自:机器之心 因为对数学感兴趣,勇敢的少年决定投身 Kaggle. 知乎上有这样一个问题已经收到了超过 700 条回答. 在这之下有人冷嘲热讽,有人给出了鼓励和建议.从人们回答的时间来看,问题 ...

  8. 业界 | 如何达到Kaggle竞赛top 2%?这里有一篇特征探索经验帖

    本文作者 Abhay Pawar 多次参加 Kaggle 竞赛,并在 Instacart Market Basket Analysis 竞赛中拿到 top 2% 的名次.他在多年竞赛中总结出了一套特征 ...

  9. kaggle竞赛之Hungry Geese比赛

    kaggle竞赛之Hungry Geese比赛 1. 比赛内容和规则 1.1 比赛内容 1.2 比赛规则 2. 强化学习算法思路 2.1 HandyRL 2.2 蒙特卡罗树搜索 3. 经验总结 本文主 ...

最新文章

  1. 最新的GAN方法——PGGAN揭秘
  2. CaseStudy(showcase)界面篇-导出xaml以及放入Blend的技巧
  3. spring 登录提示 Bad credentials
  4. Python中的除法保留两位小数
  5. python中numpy是什么_什么是NumPy?
  6. 关于深度学习,我们写了一本1400页的全栈手册
  7. Java中boolean类型占用多少个字节
  8. 【Nginx那些事】nginx 安装及常用指令
  9. MVC教程第七篇:闲话ASP.NET
  10. Win7下安装git
  11. Pandas程序回顾
  12. 第 3 章 查询截取分析
  13. Session重点整理
  14. 回馈顾客, 活动搞起 --- 策略模式
  15. vue-awesome-swiper:slideTo无效
  16. 蚂蚁区块链第19课 联盟链创建及管理
  17. 二维 稳态边界层问题MATLAB,第三章 边界层理论.ppt
  18. ThinkPHP6 操作SharePoint
  19. 1.UFS3.1 — Power Mode
  20. 软件测试-黑盒测试方法(二)---正交实验法、场景图、错误推测法

热门文章

  1. 正念,探寻自我觉醒之路(深度想考)
  2. 【小白】使用Typora与微云实现数据同步
  3. 如何将数据从Excel文件导入SQL Server数据库
  4. chattr 命令详解
  5. Android Studio 基础 之 简单获取手机端所有图片
  6. 给定一系列正整数,请按要求对数字进行分类,并输出以下5个数字
  7. 【架构治理】在代码存储库中记录软件架构
  8. Adaptive Icons - Android O 自适应图标简单用法
  9. 语法3:for - 循环结构
  10. Spark官方文档整理:spark-core