转载自: http://www.wtoutiao.com/p/mf57Hk.html

数据科学自媒体 · 2015-08-02 05:46

先贴下Kaggle Profile以示诚意(https://www.kaggle.com/winsty)我是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上都玩得愉快~~

【陆勤阅读】参加kaggle数据挖掘竞赛是怎样一种体验?相关推荐

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

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

  2. 参加kaggle竞赛是怎样一种体验?

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

  3. kaggle数据挖掘竞赛Home Credit Default Risk讲解

    1.从常理来说这种预测的结果应该是0,1,也就是分为欺诈和不欺诈两种,一般衡量指标为accuracy,但是如果这样会有缺点,因为可以预测所有人都是不欺诈的,这时accuracy的值就会很大,但这样的方 ...

  4. kaggle数据挖掘竞赛--信用卡违约风险评估模型

    本例程是通过客户提供的信息分析客户会产生违约的可能性.由此来判断是否要给客户提供贷款.背景内容不再多说,数据相关的解释在代码中会有注释.运行中缺失的包请自行安装,我这里的环境是anaconda 直接上 ...

  5. 历届数据挖掘课程中参加kaggle、天池、数据城堡、datacastle等互联网数据挖掘竞赛资源

    数据挖掘竞赛提供各种真实案例及数据,是数据挖掘.机器学习.人工智能等方向重要的学习过程,国防科技大学大学丁兆云副教授长期主讲<数据挖掘>.<先进数据挖掘技术>.<机器学习 ...

  6. Kaggle 数据挖掘比赛经验分享 (转载)

     [干货]Kaggle 数据挖掘比赛经验分享 (转载) 标签: 数据挖掘数据科学家机器学习kaggle 2017-05-21 19:25 99人阅读 评论(0) 收藏 举报 本文章已收录于: 分类 ...

  7. 人大附中高中生学Python获数据挖掘竞赛一等奖,将去旷视科技实习

    本文授权转自光明社教育家(微信ID:jyjzzwx) 作者 | 翟小宁 武迪 朱星宇是人大附中2011级早培班的一名学生,现在在高三出国班上课.他在学校的身份不只是学生,同时也是计算机视觉与深度学习研 ...

  8. 我从Kaggle机器学习竞赛中获得的经验

    by Parminder Singh 通过Parminder Singh 我从Kaggle机器学习竞赛中获得的经验 (What I've learned from competing in machi ...

  9. 【干货】Kaggle 数据挖掘比赛经验分享

    [干货]Kaggle 数据挖掘比赛经验分享 Kaggle 于 2010 年创立,专注数据科学,机器学习竞赛的举办,是全球最大的数据科学社区和数据竞赛平台.笔者从 2013 年开始,陆续参加了多场 Ka ...

最新文章

  1. 软件测试工程师如何提升自己?
  2. linux 编译 编解码
  3. C#中的快捷键,可以更方便的编写代码
  4. Stm32 IAP程序编写及用户程序编写
  5. LiveQing直播点播存储流媒体服务-服务器并发性能及消耗带宽计算参考
  6. winform中listView
  7. 新年到!充满年味的海报给你参考
  8. Windows下使用Git配置SSH免密登录
  9. 【Oracle】非RMAN恢复数据文件、控制文件
  10. Android 网络学习之获取服务器文本文件
  11. 《数字电子技术基础》4.3 若干常用的组合逻辑电路 学习笔记
  12. VSCode印象笔记插件--EverMonkey
  13. axios 上传文件 封装_axios 封装上传文件的请求方法
  14. Z490 AORUS PRO AX+i9-10850K黑苹果EFI引导文件
  15. Model Inversion Attacks that Exploit Confidence Informati on and Basic Countermeasures 阅读心得
  16. 2021年的最后一天
  17. 大数据面试演讲稿 离线数仓实时分析
  18. 交换机配置过程中大多数单词
  19. shell stop|start|restart
  20. 基于SSM的电影网站设计与实现

热门文章

  1. 基于centos的FasfDFS安装配置
  2. pl/sql 中变量定义范围的小例子:
  3. hibernate 的SessionFactory的getCurrentSession 与 openSession() 的区别
  4. Windows server 2008 iis7 下配置PHP+MySql
  5. 问题五十:怎么用ray tracing画blobs
  6. java容量_java中常用集合类的容量
  7. 推荐系统-Task01熟悉新闻推荐系统基本流程
  8. Kettle工具使用及总结
  9. 大数据分析平台安全的重要性
  10. 什么是真正的大数据营销