Kaggle大神经验分享丨如何用15个月冲到排行榜的首位
在最新的Kaggle用户排行榜上,排名第一位的ID是Bestfitting,他本人叫Shubin Dai。Shubin Dai在两年前加入Kaggle,目前生活在中国湖南省长沙。他是一名数据科学家、工程师,目前领导一家为银行提供软件解决方案的公司。在工作之余,除了Kaggle,Dai还是一名狂热的山地车手,喜欢户外运动。
最近Shubin Dai接受了Kaggle团队的专访,分享了他在参加Kaggle竞赛时的心得与体会。
Q1: 可以介绍以下自己和相关背景吗?
我的专业是计算机科学,在软件开发方面有超过10年的经验。目前我负责领导一个团队,专门为银行提供数据处理和分析的方案。
自大学以来,我对利用数学知识构建程序,从而来解决问题十分感兴趣。我一直在阅读计算机科学方面的书籍和论文,并且很高兴见证了过去十年中机器学习和深度学习方面的进展。
Q2: 你是如何开始参加Kaggle比赛的?
正如之前所说的,我一直在阅读大量机器学习和深度学习方面的书籍和论文,但发现很难将我学到的算法应用于小型数据集。我发现Kaggle是一个很棒的平台,当中有各种有趣的数据集、算法和精彩的探讨。我迫不及待想进行尝试,我第一个参加的比赛是“预测红帽商业价值”(Predicting Red Hat Business Value)。
Q3: 在参加新的比赛时,你首先会做什么?
在比赛开始的第一个星期,我会创建一个解决方案文档,在比赛进行中,我会不断对文档进行更新。为此,首先我需要了解比赛和手上的数据,然后研究类似的Kaggle比赛和相关论文。
Q4: 在比赛时,你会做哪些步骤呢?
1. 仔细阅读比赛的概述和数据的描述;
2. 查找类似的Kaggle比赛。作为刚加入Kaggle社区不久的新手,我对所有的Kaggle比赛进行了搜索和分析;
3. 研究类似比赛的解决方案;
4. 阅读相关论文,确保我跟进该领域的最新进展;
5. 分析数据,并构建可靠的交叉验证;
6. 进行数据预处理、特征工程、模型训练;
7. 进行结果分析,包括预测分布、错误分析、困难样本等;
8. 根据分析,精心设计模型或设计新模型;
9. 基于数据分析和结果分析,通过设计模型增加多样性,或解决困难样本;
10. 模型集成;
11. 必要时返回前面某个步骤。
Q5: 你最喜欢的机器学习算法是什么?
我会逐个选择算法,但在进行集成时我更喜欢用简单的算法,如岭回归(ridge regression)。在深度学习的比赛中,在开始我总是喜欢使用resnet-50或设计类似的结构。
Q6: 你最喜欢的机器学习库是什么?
在计算机视觉比赛中,我非常喜欢用pytorch。在自然语言处理或时间序列比赛中,我喜欢用TensorFlow或keras。在进行分析时,我会使用seaborn,以及scipy库。很多情况下scikit-learn和XGB都是不错的选择。
Q7: 你会如何进行超参数调整呢?
我根据对数据和算法的理论理解来调整参数,如果我无法解释结果变好或变坏的原因,我不会轻易使用。
在深度习比赛中,我经常会搜索相关论文,查找在类似情况下其他人会怎么做。
而且,我会比较参数更改前后的结果,例如预测分布、受影响的样本等。
Q8: 你是如确定交叉验证方法和最终的提交模型?
有了好的交叉验证方法就成功了一半。在找到好的方法来评估模型前,我不会进入下一步。
为了构建可靠的交叉验证方法,你必须很好地理解数据和所面临的挑战。我还会检查,并确保验证集与训练集和测试集有类似的分布,我会确保我的模型本地交叉验证和公共排行榜上都有不错的改进。
在时间序列比赛中,我会留出数据作为验证集。
通常,我会以一种保守方式来选择最终的提交模型。我会选择对可靠模型进行加权平均后的集成模型,并确定出其中相对冒险的模型。在我看来,更多的参数意味着更多的风险。但我不会选择我无法解释的模型,即使它的公共排行榜得分很高。
Q9: 简而言之,怎样才能赢得比赛?
需要良好的交叉验证方法。以及从其他比赛中学习,阅读相关论文,还需要自律和心里承受力。
Q10: 你最喜欢哪类Kaggle比赛?为什么?
我最喜欢自然保护和医疗相关的比赛。我觉得我有必要为改善我们的生活和保护地球做些什么。
Q11: 机器学习中,你对哪个子领域最感兴趣?
我对深度学习的各种进步都很感兴趣。我想利用深度学习解决除计算机视觉和自然语言处理之外的问题,因此在我参加的比赛和日常工作中,我会使用到深度学习。
Q12: 对你而言,在解决数据科学问题时,专业知识有多重要?
老实说,我不认为专业知识会有太多的作用,原因如下:
1. Kaggle提供的比赛数据对每个人都很公平;
2. 仅使用成熟的方法赢得比赛是很难的,尤其是对于深度学习的比赛。因此我们需要更多创造性的解决方案;
3. 数据本身更重要,尽管我们可能需要阅读一些相关的材料。
但是也有一些例外。例如,在Planet Amazon比赛中,我从我在热带雨林的经历中获得了一些想法,但这些经验并不能称为专业知识。
Q13: 你认为你最有竞争力的比赛技巧是什么?
我认为是在比赛开始时准备解决方案文档。我会列一份清单,包括面临的挑战、应该阅读的解决方案和论文、可能的风险、可能的交叉验证方法、可能的数据增强方法以及加强模型多样性的方式。而且,我会不断更新文档。幸运的是,这些文档在我之后的比赛中都很很大的帮助。
Q14: 在工作中,你是如何运用数据科学的? Kaggle比赛有所帮助吗?
我的团队尝试通过机器学习解决各种银行业务问题,比如预测银行网点的访客;预测ATM应准备的现金;产品推荐;操作风险控制等。
Kaggle比赛也改变了我的工作方式,当我为解决问题寻找解决方案时,我会寻找类似的Kaggle比赛,因为那些都是宝贵的资源。同时我还建议我的同事们研究类似的解决方案,从中获得启发。
Q15: 你如何权衡模型复杂性和训练/测试运行时间?
以下是我的看法:
1. 只有当这方面出现问题时,培训/测试运行时间才值得关注。当正确率很重要时,不用太担心模型的复杂性。如果获得训练数据需要好几个月的时间,那么我们需要充分的利用。
2. 现在,只对弱模型进行集成很难赢得比赛。如果你想成为第一名,你需要多个很好的单一模型。如果我想在比赛中确保第一名,我会设计几个不同的模型,并且在排行榜上能达到前10名,有时甚至是前3名。
3. 按照我的经验,我会在比赛中设计模型来探索这个问题的上限,然后选择一个简单的模型使其在实际情况下可行。我总会尽量向组织者提交一个简单模型,并且与他们进行讨论。我发现一些组织者甚至会使用我们的方案来解决他们面临的其他问题。
4. 当训练/测试运行时间很重要时,Kaggle有很多机制来确保性能:kernel比赛、团队规模限制、增加更多在计分时未计算的数据等。我相信Kaggle也会根据比赛目标改进规则。
Q16: 你是如何在Kaggle比赛不断进步的?
有趣的比赛和Kaggle中强大的竞争对手让我不断进步。
Kaggle中有许多优秀的竞争者,因此想赢得比赛并非易事,这不断挑战我的极限。去年,我尽可能多地完成比赛,并且猜测其他竞争者会做什么。为此,我必须阅读大量材料,并构建多功能模型。在比赛之后,我研究了其他竞争对手的解决方案。
Q17: 你有关注哪些最近或正在进行的机器学习比赛吗?
今年我希望能参加Kaggle的深度强化学习比赛。
Q18: 你仅用15个月就上升到排行榜的第一名,你是怎么做到的?
首先,取得第一只是代表我在Kaggle所学到的知识,而且我也幸运。
在我的前几次比赛中,我试图将近年来学到的理论转化为技巧,并从其他人那里学到很多。
在对Kaggle比赛有一定的了解之后,我开始思考如何用系统化的方式进行比赛,因为我在软件工程方面有多年经验。
大约半年后,我获得了首个奖项,并获得了一些自信。我感觉我可能会在一年内成为达到大师级别。在Planet Amazon比赛中,我试图获得金牌,当发现自己名列第一位时,我非常惊讶。
然后我觉得应该继续使用之前提到的策略和方法,从而取得更多的成功。在赢得Cdiscount比赛后,我爬升到了用户排名榜的前列。
我从Kaggle平台受益颇多,我从其他人那里学到了很多,Kaggle的用户排名系统也激励着我不断进步。我也感到很幸运,我没想到我能连续获得6次奖项,在许多比赛中取得了前10名或前1%的成绩。我可能很难再重复这个经历了。
但是,取得好的排名并不是我的目标。我把每场比赛都视为学习的机会,因此我会选择我不太熟悉领域的比赛,这迫使我去年研读了成百上千篇论文。
Q19: 你提到过,你喜欢研究之前比赛中评分最高的解决方案。你有什么特别的见解吗?
我尊重所有的赢家和出色解决方案的贡献者,我知道他们付出了非常多的努力。我总是以一种可敬的态度研究这些解决方案。
数据分析咨询请扫描二维码
在准备数据分析师面试时,掌握高频考题及其解答是应对面试的关键。为了帮助大家轻松上岸,以下是10个高频考题及其详细解析,外加 ...
2024-12-20互联网数据分析师是一个热门且综合性的职业,他们通过数据挖掘和分析,为企业的业务决策和运营优化提供强有力的支持。尤其在如今 ...
2024-12-20在现代商业环境中,数据分析师是不可或缺的角色。他们的工作不仅仅是对数据进行深入分析,更是协助企业从复杂的数据信息中提炼出 ...
2024-12-20随着大数据时代的到来,数据驱动的决策方式开始受到越来越多企业的青睐。近年来,数据分析在人力资源管理中正在扮演着至关重要的 ...
2024-12-20在数据分析的世界里,表面上的技术操作只是“入门票”,而真正的高手则需要打破一些“看不见的墙”。这些“隐形天花板”限制了数 ...
2024-12-19在数据分析领域,尽管行业前景广阔、岗位需求旺盛,但实际的工作难度却远超很多人的想象。很多新手初入数据分析岗位时,常常被各 ...
2024-12-19入门数据分析,许多人都会感到“难”,但这“难”究竟难在哪儿?对于新手而言,往往不是技术不行,而是思维方式、业务理解和实践 ...
2024-12-19在如今的行业动荡背景下,数据分析师的职业前景虽然面临一些挑战,但也充满了许多新的机会。随着技术的不断发展和多领域需求的提 ...
2024-12-19在信息爆炸的时代,数据分析师如同探险家,在浩瀚的数据海洋中寻觅有价值的宝藏。这不仅需要技术上的过硬实力,还需要一种艺术家 ...
2024-12-19在当今信息化社会,大数据已成为各行各业不可或缺的宝贵资源。大数据专业应运而生,旨在培养具备扎实理论基础和实践能力,能够应 ...
2024-12-19阿里P8、P9失业都找不到工作?是我们孤陋寡闻还是世界真的已经“癫”成这样了? 案例一:本硕都是 985,所学的专业也是当红专业 ...
2024-12-19CDA持证人Louis CDA持证人基本情况 我大学是在一个二线城市的一所普通二本院校读的,专业是旅游管理,非计算机非统计学。毕业之 ...
2024-12-18最近,知乎上有个很火的话题:“一个人为何会陷入社会底层”? 有人说,这个世界上只有一个分水岭,就是“羊水”;还有人说,一 ...
2024-12-18在这个数据驱动的时代,数据分析师的技能需求快速增长。掌握适当的编程语言不仅能增强分析能力,还能帮助分析师从海量数据中提取 ...
2024-12-17在当今信息爆炸的时代,数据分析已经成为许多行业中不可或缺的一部分。想要在这个领域脱颖而出,除了热情和毅力外,你还需要掌握 ...
2024-12-17数据分析,是一项通过科学方法处理数据以获取洞察并支持决策的艺术。无论是在商业环境中提升业绩,还是在科研领域推动创新,数据 ...
2024-12-17在数据分析领域,图表是我们表达数据故事的重要工具。它们不仅让数据变得更加直观,也帮助我们更好地理解数据中的趋势和模式。相 ...
2024-12-16在当今社会,我们身处着一个飞速发展、变化迅猛的时代。不同行业在科技进步、市场需求和政策支持的推动下蓬勃发展,呈现出令人瞩 ...
2024-12-16在现代商业世界中,数据分析师扮演着至关重要的角色。他们通过解析海量数据,为企业战略决策提供有力支持。要有效完成这项任务, ...
2024-12-16在当今数据爆炸的时代,数据分析师是组织中不可或缺的导航者。他们通过从大量数据中提取可操作的洞察力,帮助企业在竞争激烈的市 ...
2024-12-16