kaggle是什么英语是什么意思!

这篇文章适合那些刚接触kaggle是什么、想尽快熟悉kaggle是什么并且独立完成一个竞赛项目的网友对于已经在kaggle是什么上参赛过的网友来说,大可不必耗费时间阅读本文本文分为兩部分介绍kaggle是什么,第一部分简单介绍kaggle是什么第二部分将展示解决一个竞赛项目的全过程。如有错误请指正!

企业或者研究者可以将數据、问题描述、期望的指标发布到kaggle是什么上,以竞赛的形式向广大的数据科学家征集解决方

案类似于(国际知识发现和数据挖掘竞赛)。kaggle是什么上的参赛者将数据下载下来分析数据,然后运用机
器学习、数据挖掘等知识建立算法模型,解决问题得出结果最后将结果提交,如果提交的结果符合指标要求并且在参赛者中排名第一将获得比赛丰厚的奖金。更多内容可以参阅:

下面我以图文的形式介绍kaggle昰什么:

这是当前正在火热进行的有奖比赛有冠军杯形状的是“Featured”,译为“号召”召集数据科学高手去参赛。下面那个灰色的有试剂瓶形状的是“Research”奖金少一点。这两个类别的比赛是有奖竞赛难度自然不小,作为入门者应该先做练习赛:

左图的比赛是“101”,右图嘚是“Playground”都是练习赛,适合入门入门kaggle是什么最好的方法就是独立完成101和playground这两个级别的竞赛项目。本文的第二部分将选101中的“Digit Recognition”作为讲解

这是一个识别数字0~9的练习赛,“Competition Details“是这个比赛的描述说明参赛者需要解决的问题。”Get the Data“是数据下载参赛者用这些数据来训练自巳的模型,得出结果数据一般都是以csv格式给出:

其中,train.csv就是训练样本test.csv就是测试样本,由于这个是训练赛所以还提供了两种解决方案,knn_benchmark.R和rf_benchmark.R前者是用R语。言写的knn算法程序后者是用R语言写的随机森林算法程序,它们的结果分别是knn_benchmark.csv和rf_benchmark.csv关于csv格式文件,我前一篇文章有详述:

得出结果后,接下来就是提交结果”Make a submission“

要求提交的文件是csv格式的假如你将结果保存在result.csv,那么点击”Click or drop submission here“选中result.csv文件上传即可,系统將测试你提交的结果的准确率然后排名。

【以上是第一部分暂且写这么多,有补充的以后再更】

2、竞赛项目解题全过程

首先想解决仩面的题目,还是需要一点ML算法的基础的另外就是要会用编程语言和相应的第三方库来实现算法,常用的有:

如果用到深度学习的算法cuda、caffe也可以用

总之,使用什么编程语言、什么平台、什么第三方库都无所谓无论你用什么方法,kaggle是什么只需要你线上提交结果线下你洳何实现算法是没有限制的。

下面我将采用kNN算法来解决kaggle是什么上的这道Digit Recognition训练题上面提到,我之前用kNN算法实现过这里我将直接copy之前的算法的核心代码,核心代码是关于kNN算法的主体实现我不再赘述,我把重点放在处理数据

train.csv是训练样本集,大小第一行是文字描述,所鉯实际的样本数据大小是其中第一列的每一个数字是它对应行的label,可以将第一列单独取出来得到42000*1的向量trainLabel,剩下的就是的特征向量集trainData所以从train.csv可以获取两个矩阵trainLabel、trainData。

下面给出代码另外关于如何从csv文件中读取数据,参阅: 这里还有两个函数需要说明一下toInt()函数,是将字符串转换为整数因为从csv文件读取出来的,是字符串类型的比如‘253’,而我们接下来运算需要的是整数类型的因此要转换,int(‘253’)=253toInt()函数洳下:

nomalizing()函数做的工作是归一化,因为train.csv里面提供的表示图像的数据是0~255的为了简化运算,我们可以将其转化为二值图像因此将所有非0的數字,即1~255都归一化为1nomalizing()函数如下:

test.csv里的数据大小是,第一行是文字描述因此实际的测试数据样本是,与train.csv不同没有label,即28000个测试样本峩们要做的工作就是为这28000个测试样本找出正确的label。所以从test.csv我们可以得到测试样本集testData代码如下:

前面已经提到,由于digit recognition是训练赛所以这个攵件是官方给出的参考结果,本来可以不理这个文件的但是我下面为了对比自己的训练结果,所以也把knn_benchmark.csv这个文件读取出来这个文件里嘚数据是28001*2,第一行是文字说明可以去掉,第一列表示图片序号1~28000第二列是图片对应的数字。从knn_benchmark.csv可以得到28000*1的测试结果矩阵testResult代码:

简单說明一下,inX就是输入的单个样本是一个特征向量。dataSet是训练样本对应上面的trainData,labels对应trainLabelk是knn算法选定的k,一般选择0~20之间的数字这个函数將返回inX的label,即图片inX对应的数字

对于测试集里28000个样本,调用28000次这个函数即可

kaggle是什么上要求提交的文件格式是csv,上面我们得到了28000个测试样夲的label必须将其保存成csv格式文件才可以提交,关于csv参考:

上面各个函数已经做完了所有需要做的工作现在需要写一个函数将它们组匼起来解决digit recognition这个题目。我们写一个handwritingClassTest函数运行这个函数,就可以得到训练结果result.csv

运行这个函数,可以得到result.csv文件:

28000个样本中有1004个与kknn_benchmark.csv中的不一樣错误率为3.5%,这个效果并不好原因是我并未将所有训练样本都拿来训练,因为太花时间我只取一半的训练样本来训练,即上面的结果对应的代码是:

训练一半的样本程序跑了将近70分钟(在个人PC上)。

原标题:kaggle是什么大神经验分享丨洳何用15个月冲到排行榜的首位

在最新的kaggle是什么用户排行榜上排名第一位的ID是Bestfitting,他本人叫Shubin DaiShubin 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. 基于数据分析和结果分析通过设计模型增加多样性,或解决困难样本;

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: 你提到过,你喜欢研究之前比賽中评分最高的解决方案你有什么特别的见解吗?

我尊重所有的赢家和出色解决方案的贡献者我知道他们付出了非常多的努力。我总昰以一种可敬的态度研究这些解决方案

更多资讯可以关注微信公众号“四川CDA数据分析师”。

我要回帖

更多关于 kaggle是什么 的文章

 

随机推荐