如果不知道这10点大佬忠告,Kaggle比赛你压根别想进Top 10%!
Kaggle 是数据领域最广为人知的一个社区,数据玩儿的溜的大佬们都会不厌其烦地参与其中,去调整有意思的机器学习项目,发挥好了拿点小钱,没发挥好也能拿个银牌铜牌什么的。一个有价值有意义有理想有追求的机器学习项目可以有效地帮助竞赛者充分展现自己的能力和自己的价值。并且在很多时候,对于求职者而言,Kaggle 比赛可以帮助你在宛如鱼缸的求职市场里脱颖而出,变成整个鱼缸最靓的 Gold Fish。
想要问鼎 Kaggle 比赛,你大概需要拿出三分钟的时间看完这篇文章了。在这篇文章里,我们会给你提出十条想要问鼎 Kaggle 你必须知道的十个小tip。
客官你觉着星巴克环境好点儿还是blue bottle强点儿?
想什么呢你?
这里我们提到的环境,是编程环境!就是你的代码过的舒不舒服;代码不出bug才是爸爸,谁在乎你这个写bug的小能手呢?
机器学习的编程环境有很多种,你也会像一个射手座一样沾花惹草用一堆,但是 Kaggle 这种严肃认真的环境,我们建议你只用一种。最红火的两个环境就是 R 和 Python。
学过统计的朋友们对 R 肯定不陌生了,这个语言被拿来辅助统计教学已经很久很久了,它大概是从 1993 年左右开始被大家接触到的。Python 的话,相比于 R,就更多功能一点。中央空调大暖男,也是在90年代初和大家认识的。使用到这两种语言的时候配套所需的 everything 都发展的比较成熟了,R语言已经被发掘出了超过13,000个Packages,Python也被非常广泛地使用Package,比如 scikit-learn,pandas,NumPy 等等。最近 Python 还参与到了深度学习的小家庭里,和 Theano,TensorFlow,Keras 处的都不错。
熟悉的嘛,一般比较容易信任你,轻轻松松就.。。。是吧
想什么呢你?
我说的是数据集啊兄dei!当你选定了你要从一而终的语言以后,你就需要开始和真实的数据集一起训练啦!一个非常值得被你借鉴的建议就是,去找一个真实的,简单的,广为人知的数据集去练一练先。给你们推荐一个绝好的东西:UCI Machine Learning Repository,搜搜看有惊喜。你可以把每一个项目都当做一个迷你 Kaggle 来练习。
迷你项目拆分秘籍
1. 把数据集分为训练集(training set)和测试集(test set),然后测试集(test set)分为公共的(public)和私密的(private)从而无限接近 Kaggle 的设置。
2. 还记得那个你选中的要和你从一而终的仔么?用那个语言配合着统计算法去对每个数据集做预测(prediction)这一步需要你用不同的数据集反复练习,练多少遍合适呢?越多越好。
3. 然后你就要去给每一个你做的练习找一个标准答案了。哪儿找呢?谷歌一下,你就知道。这就是为什么我们最开始说要用广为人知的数据集,这样就很方便你找到别人给出的solution。举个栗子,你不找你都不会知道有多少人拿 Iris Data Set 做数据练习。
金星老师的话是不是突然在你耳边团团团团团团团团转?
想什么呢你?
我说的是数据转换这个小丫头啦!要去探究一下数据转换的多面性。业内给数据转换起了很多名字,最常见的 Data Transformation,还有 Data Wrangling,或者 Data Munging。数据转换的过程包括了很多:merging data, aggregating data, cleansing data, handle missing data, making data consistent 等等等等。数据转换通常会占用整个 project 超过百分之70的时间成本和金钱成本,所以是爸爸。所以需要你多去探究一下,别亏待了爸爸。
这个你真的得听我的,我是射手座。
想什么呢你?
Feature Engineering 你听说过么?这是一种教会你如何透过冰冷的数据洞悉对方内心的高科技!Feature Engineering 是当你这场数据杀里玩预言家的那位拥有超强预测能力的时候,我们提到的一种读心术。
据我们最精准的消息返回来的报告来看,Kaggle 的参赛者中,拿奖拿钱的那一小波精英中,更多的是金牌预言家,而不是算法快男/女。如果你想要真正地了解到你所研究的问题本质,那你在选择你研究的 feature 的时候就需要更大胆的猜想和假设。把 Creative Feature Variable Selection 技能和 Forward & Backward Elimination (追赶法) 技能结合起来,就可以进一步让你的 Feature Engineering 程序接近自动化。
为什么这么说呢?因为全套的戏可以从个方面提升幸福感和满足感,也可以帮助你更高更强地达成目的。
想什么呢你?
这里说的全套,专业数据叫 Ensemble!什么意思呢?意思就是让你通过统计算构建一组增强预测性能的分类器(classifier)然后通过对不同测试预测的加权处理来对分类出新的数据点。在这里,我们呼吁大家摒弃专一的原则,我们希望大家能够吸纳多元化的模型参与到你的数据集预测中。很多 Kaggle 的最终赢家通常都是通过多模型的预测方法来获得最终的 钱。
戏不要太多
中央戏剧学院的资深教授告诉过我这么一件事情,戏要好,得深情,得让观众觉得有嚼头,但!不能过,戏多会让人恶心。
想什么呢你?
这是 Kaggle 王者的诞生,不是演员的诞生!这里说的戏多是什么意思?Overfitting,过度拟合。什么是过度拟合?我们从知乎上找到了一个非常精彩的答案,分享给大家。
在 Kaggle 比赛中,过度拟合会出想什么问题呢?你通过你的训练集做出来的过度拟合模型对你的测试集而言,可能并不合适。在 Kaggle 的系统里,过度拟合会影响到你在“领袖者先锋榜单”(leaderboard)的分数。这些分数是怎么算出来的呢?会随机取一小撮数据(你数据的百分之20),然后在这组数据上跑你的模型,然后谁跑的好看谁拿冠军咯。
是啦,无论在什么关系中,交流确实都是非常非常重要的一件事情啦。
想什么呢你?
我们说的是论坛啦。什么论坛?你说呢?Kaggle 论坛咯,不然还能是百度 Kaggle 么?Kaggle 的用户论坛,卧虎藏龙,有很多很多的资源等待你去挖掘。你哪怕只是搬着小板凳,带着瓜子,去看别人聊天,都能学到很多。多问问题,多请教,然后你就能发现论坛里的虎和龙有多生猛。
出门在外,该带的都得带齐了,别到了关键时候发现要啥啥没有。
想什么呢你?
说的是你比赛的“工具箱”啦,不是硬硬的工具箱,而是软软的那种。那种充满了各式各样代码序列(code sequence)的那种。在很多次的练习过后,你就会有一些你自己用的特别顺手效率比较高的代码序列。另外,在练习的过程中,不要忽略对于构建 data pipeline 的思考。在很多次的练习以后,你就会有一个可以重复使用的 pipeline,就跟 GRE 写作模版一样!对于小白来说,如果你没有一个用的顺手的模版,也没有反复练习过,即便是你做过的东西,你也有可能会出错。
我们啊要善于总结,要对过去的经验,取其精华弃其糟粕,才能保证我们想要的都紧紧握在手里,这都是爱的箴言。
想什么呢你?
说的是让你去练一练之前的那些 Kaggle 比赛项目啦!想要熟练操作你准备好这些东西,当然是要“是骡子是马拉出来溜溜”先。如果你去到 Kaggle 的官网,你就能看到之前的一些已经结束的 project,先拿他们练练手啦!如果你不知道选哪个?我们可以给你推荐一个作为你 Kaggle 旅程的第一步。
👉https://www.kaggle.com/c/avito-demand-prediction
说到这,我就不跟你卖关子了,大概意思就是,你可以带着你的全部家当去打 Kaggle 赚零花钱,赢一个项目少的有小一千,稍微多点儿的有个大好几千,多点儿的上万也是随随便便,还有更高的,高到你肝颤儿,你不心动么?
心动就要行动!全网唯一涵盖 Kaggle 比赛的数据科学家训练营,你不心动么?我们为你提供最扎实的知识储备,带你找环境,选数据集,了解专业知识,练习无数真实数据,16个礼拜的潜心修炼,就会让你变成一个全方位的数据科学天才!来吧,长按海报,和小姐姐聊个一毛钱的。
原文作者:今天也很甜的卡里
美工编辑:今天也很可爱的Max程猪毛
校对审稿:今天也很可爱的Max程猪毛