0
日前,谷歌在 Google Cloud Next 云计算大会上宣布收购知名大数据竞赛平台 Kaggle。消息一出,震动了数据科学、AI、机器学习三界(详见雷锋网文章:谷歌收购 Kaggle 为什么会震动三界?)。相信经过这条新闻的曝光,未来会出现更多的开发者和从业人员加入 Kaggle 一展身手。为此,雷锋网编译了一篇国外大牛的博文,其中总结了入门 Kaggle 竞赛的四个简单步骤,希望对相关人员有所帮助。
原文作者 Jason Brownlee,机器学习专家,开发者,作家,企业家,曾在美国国防部门、初创企业和极端天气预报机构从事机器学习的相关开发工作多年。目前为了帮助机器学习领域更多的开发者,开设了一个名为 Machine Learning Mastery 的网站,提供各种入门和高级的机器学习教程。
目前,开发者可以通过各种各样的方式来学习和实践机器学习技能,但为什么大家都选择 Kaggle 呢?或许是因为 Kaggle 具有以下一些特定的优势:
● 问题的定义明确,直接提供了可用的数据库;
● 由于行业里充斥着各种五花八门的排行榜,因此很难找到其他更客观的机器学习测试平台;
● 通常每场比赛都会有许多讨论和分享,参赛者可以从中学习,并参与分享;
● 通过解决现实生活中的某个特定数据问题,参赛者可以充分展示自己;
● 这是一个完全靠技术说话的平台,只要你能解决问题,就能赢得尊重,跟学历和学位无关。
这里,我总结了入门 Kaggle 竞赛的四个简单步骤:
1. 选定一个平台
2. 基于标准的数据库练习
3. 练习旧的 Kaggle 题目
4. 在 Kaggle 上比赛
就像这世上的许多事,简单地写出这四个步骤当然很容易,但实现起来很难。实现它们需要付出非凡的时间和精力,无疑会是一项艰苦的工作。当然,天道酬勤,只要你付出了努力,并且有条不紊地坚持下去,那么总有一天你将成为一名世界级的机器学习从业者。
另外,对于那些已经具备一些开发经验的读者,你可以直接跳到第四步开始比赛。但对于本文的主要读者,那些入门级的用户,我还是建议从第一步开始。
下面我们具体看看这四个步骤。
同样,摆在开发者面前的可选平台也很多,可能最终你会发现初期的选择纠结是没有必要的,因为每个开发者实际上都同时使用许多平台,但刚开始你必须选定一个。
这里,我推荐大家以 Python 为起点。原因有以下几条:
● 业界对基于 Python 的机器学习需求正在增长;
● 不像 R 语言,Python 是一个全功能的编程语言;
● Python 的生态系统已经基本成熟,可选的工具包非常丰富,例如 sklearn,pandas,statsmodels,xgboost 等;
● Python 具有一些非常好的深度学习框架:Theano,TensorFlow,Keras 等。
总之,你必须先选定一个平台,并开始学习如何使用它。
深入阅读:
● Python is the Growing Platform for Applied Machine Learning
地址:http://machinelearningmastery.com/python-growing-platform-applied-machine-learning/
● Python Machine Learning
地址:http://machinelearningmastery.com/start-here/#python
选定了平台之后,下一步就是基于真实的数据库展开实践。
这里我推荐通过 UCI machine learning repository (UCI 机器学习资源库)来解决一些标准的机器学习问题。
UCI 官网:http://archive.ics.uci.edu/ml/index.html
需要强调的是:将每个数据集都视为一次小型的比赛。相关注意事项包括:
● 将数据集组织成一个队列,并且保留测试集,将测试集分成一个公共和私人的排行榜;
● 概括每一个数据集的处理过程,坚持下去,并不断修正这一过程,直到通过它你可以很容易地得到针对每一个小型数据集的顶级结果;
● 对每一个数据集规定时间上线,例如必须在几个小时内完成;
● 充分利用相关数据集的文档资料,以更好地定义既定问题和解释特征。
● 学习如何充分利用好每一个工具、算法和数据集。
总之,你需要认真对待每一个数据集,通过处理各种不同的数据集积累经验,并将这些经验应用到处理新的数据集中。
深入阅读:
● Practice Machine Learning with Small In-Memory Datasets
● Applied Machine Learning Process
http://machinelearningmastery.com/start-here/#process
经过以上两步,现在你已经清楚地认识了自己的工具,并懂得如何去使用它们,是时候练习一些旧的 Kaggle 题目了。
你可以访问那些旧的 Kaggle 比赛的数据集,并针对这些数据发布自己的解决方案,然后在公共和私人的榜单上进行评估。
第三步的核心目的是:学习以往比赛中的顶级选手是如何处理竞赛性的机器学习问题的,然后将他们的方法融入自己的解题思路之中。相关注意事项包括:
● 尽量选择类型各不相同的问题,迫使自己学习和应用新的、与以往不同的技术;
● 研究论坛里的帖子、顶级选手的博客、GitHub 仓库和所有其他的相关资料,学习别人的解决方案;
● 以进入公共或私人排行榜的前 10% 为奋斗目标;
● 针对同一个数据集,尝试多个不同的获奖者的解决方案。
总之,你需要认真学习以往的优秀参赛者的解决方案和工具,并吸收他们的优点,进一步积累经验,将这些经验应用到新数据集的处理中。
深入阅读:
● Machine Learning is Kaggle Competitions
http://machinelearningmastery.com/machine-learning-is-kaggle-competitions/
● Discover the Methodology and Mindset of a Kaggle Master: An Interview with Diogo Ferreira
现在,你已经可以正式参加 Kaggle 比赛了。
下面是一些参赛的注意事项:
● 一次只处理一个问题,直到被卡住;
● 以进入每个问题的私人排行榜的前 25% 或前 10% 为奋斗目标;
● 尝试在论坛上自由分享,这会引发良性的互动和协作;
● 最大限度地缩短思考/阅读一个好主意和将之付诸实践的时间(例如几分钟之内);
最后需要强调的是,Kaggle 虽然的确是一场比赛,但我们应该抱着学习和分享的态度去参赛。
深入阅读:
● How to Kick Ass in Competitive Machine Learning
http://machinelearningmastery.com/how-to-kick-ass-in-competitive-machine-learning/
● Master Kaggle By Competing Consistently
http://machinelearningmastery.com/master-kaggle-by-competing-consistently/
来源:machinelearningmastery,雷锋网编译
雷峰网版权文章,未经授权禁止转载。详情见转载须知。