本人是立志读博的,刷竞赛也只是业余爱好。这篇只是科普文,简单介绍了一下kaggle如何快速拿牌的简单套路。

随著数据挖掘比赛的兴起,越来越多的人才参与数据挖掘这个领域当中。kaggle作为一个世界知名的平台对于新手是一个很好的学习平台,对于高手是一个很好的交流以及展示自己的机会。

kaggle上举办的数据比赛分为表格数据、NLP数据、图像数据三种。本次的比赛是表格数据。

本次比赛的特点是数据的结构很简单:

一列是是我们的id,一列是我们需要预测的结果。面对特征如此少的数据,我们需要首先进行的是数据特征的构造。如果是一个参加过比赛的人,会第一反应是构建统计学特征,但是很多的新手,对于这种比赛是第一次见的时候,会出现无从下手的境地,这个时候,我们需要做的就是寻找已经开源中的kernel中的特征。一般来说会有很多的大神开源这种kernel,并且随著比赛的不断进行,大家也会发现一些trick以及新的特征,所以,建议大家不停的刷新出现的kernel,有新的特征就扔进模型当中尝试一下。

我通过刷开源的kernel以及自己根据经验构造,最后得到大概3000多个特征。

之后便是一个搭建模型了,我建议大家可以简单的单模型尝试一下,单模型可以帮助我们进行特征的选择以及尝试,当单模型的结果变好的时候,我们可以尝试多模型堆叠。

在目前的数据挖掘比赛当中最常用的就是lightgbm,这个模型是由微软开发的一个集成树的框架,这个框架目前在数据挖掘领域的竞赛中属于一个统治地地位。并且网上有一个很完善的文档,建议大家可以根据文档自己尝试著学习。同时lightgbm还有一个特征筛选的功能,大家可以根据他的结果,来删减特征的纬度,确实很方便。

下面我列出我写的lightgbm的参数:

当模型搭建好了,便是交叉检验的过程当中,这里我使用的是sklearn中的一个简单的KFold功能,这个可以帮助大家更好的判断模型的性能。并且由于kaggle每天的提交的次数有限,并且它反馈阶段的数据和最后盲测的数据是不一样的,因此,建议大家最好搭建一个可靠的cv系统。

由于比赛还没有结束,我会在比赛结束之后完整开源我的方法。

推荐阅读:

相关文章