通过持续参赛掌握 Kaggle

如何才能擅长 Kaggle 竞赛?

这是我经常被问到的一个问题。想要入门并精通的最佳建议就是持续参加竞赛。你不参与就无法在机器学习方面有所进步。

Triskelion 最近发表的一篇题为“回顾一年的 Kaggle 竞赛”的文章印证了这一点。他最初是一名机器学习新手,最后成为了一名“大师级” Kaggle 竞赛选手(取得了 10% 的排名和一次前 10 的成绩)

在这篇文章中,我们将回顾 Triskelion 关于通过持续参与来掌握 Kaggle 的经验。

compete consistently

持续参赛
图片由 Paul 提供,部分权利保留

良好开端的关键

我认为 Triskelion 取得良好开端并有信心继续下去的关键在于两点:

  1. 复现结果:他复现了论坛和博客文章中描述的结果。
  2. 使用工具:通过复现结果,他发现了并开始使用像 Vowpal Wabbitscikit-learn 这样的工具。

复现结果
这是一个显而易见但却被极度低估的方法。

好的机器学习教程很少。最好的替代方法(甚至比玩具数据集的教程还好)是论坛上的“如何击败基准”帖子和竞赛结束时的“我是如何做到的”帖子。

这样做的原因是,这些准教程让你得以一窥世界级分析师如何思考和解决问题。例如:他们使用的工具、如何设置他们的流程、他们使用的参数、整个过程,一切都是如此。

模仿这些元素是提升你机器学习技能的绝佳方式。

使用优秀的工具

新手常犯的错误是从头开始重新实现算法。

有大量的强大工具可用,你必须加以利用。你将获得更好的结果,速度更快。这将激励你继续前进。

Triskelion 早早地发现了 Vowpal Wabbit,并且不害怕去使用它。VW 是一个非常强大的工具,即使是专业人士也难以驾驭。

事实上,我在那些在机器学习方面训练有素的“专家”身上看到的一个问题是,他们忽略甚至鄙视现代或不同的工具。他们学习机器学习是在 R 或 Weka 中,因此每个问题只能用他们选择的武器来解决。

你了解并能使用的工具越多,你就有越多的方法来思考和解决你的问题。

精通的关键

持续参赛是精通的关键。

“精通”是相对的,但 Triskelion 在一年后的进步是显而易见的(比近 20 万其他参赛者都要好),这很大程度上归功于他积极的参赛计划。

他列出了 7 个具体的竞赛,但他的个人资料显示他总共参加了 15 个竞赛。

如果你想在机器学习竞赛中取得好成绩,就效仿他的做法,参加大量的竞赛。即使你在最初的几次竞赛中只能达到基准水平,你也会学到很多关于数据准备和工具的知识。

如果你复现了你在博客和论坛上看到的关于这些竞赛的结果,那么你的进步将是非线性的。

竞赛技巧

最后,Triskelion 提出了一些技巧。

  • 大量练习:尽可能多地参加挑战,逐步改进。
  • 研究评估指标:真正理解 AUC 等(参见指标列表)。
  • 研究领域:商业案例、论文、最新技术、特征工程。
  • 组队:获得前 10 名很难,但需要组队才能实现。
  • 阅读论坛:参与竞赛主题的讨论,理解获胜解决方案。
  • 在论坛分享:对于同一个问题,有很多角度,不要分享得太多。
  • 使用集成模型:它们总是能提高结果,简单的模型也能帮你进入前 10。
  • 实验:尝试想法,而不是只停留在思考阶段。
  • 创造力:跳出固有思维。
  • 工具:寻找并使用好的算法。
  • 调优:使用交叉验证,调优所有模型参数。

他的最后一条建议是享受乐趣。

这可能是最重要的一点。有竞争力的机器学习非常有趣。从中找到乐趣。在开始时需要一些毅力来克服知识的障碍。在早期,“表现不错”(击败基准)本身可能就是乐趣所在。

4 回复 “通过持续参赛掌握 Kaggle”

  1. SYKim 2017年2月6日晚上11:11 #

    谢谢!这真是个对初学者很好的指南!

  2. Ady Kalra 2018年1月29日下午3:27 #

    太棒了!

留下回复

Machine Learning Mastery 是 Guiding Tech Media 的一部分,Guiding Tech Media 是一家领先的数字媒体出版商,专注于帮助人们了解技术。访问我们的公司网站以了解更多关于我们的使命和团队的信息。