SPA大赛:广告数据挖掘的经验分享

作者:王晓娟

大家好,我们的团队是由来自三个不同专业的小伙伴组成,且都是萌新,这是我们团队第一次参加数据挖掘比赛。我们团队从5月10号下载数据后开始看题目,找相关资料等,就在当天晚上我在腾讯官方微信公众平台上看到了腾讯数据挖掘工程师陈成龙分享的“ kaggle 数据挖掘比赛经验分享”的干货,这份干货对数据挖掘小白的我们实在是太有用了,于是我和队友花了整整一天的时间研究了一下这份干货,随后再去看题目,这才有了一些思路。尽管我们在初赛过程中困困重重,但我们经过两周的共同的努力,目前以0.099711的成绩进入了决赛。下面我就针对具体问题介绍一下我们的做法。

1.数据集构造方面

我们在看了好几遍题目后,开始尝试用干货中提到的数据清洗策略清洗本次数据。首先是分别统计了 train.csv 中 label=1 和 label=0 的样本数量,发现这个比例是1:40,很明显是正负样本不均衡的问题。然后发现数据分布在6个.csv 文件中(train.csv和test.csv除外),这里需要做的工作就是 merge,但真正要把 merge 做好就需要找对连接的标签和采用的连接方式,我们用了左外连接。另外在 validation 划分方面,我们随机选取数据集的12%作为 validation ,因为不同的随机数种子产生的 validation 集的 logloss 会有些差异,但是要注意数据泄露的问题,比如用18-24的数据去做训练,25天的数据去做测试,这就有可能导致数据泄露,这里我们尝试改变随机数种子使得线上线下接近一致。

2.模型构建方面

我们队使用的模型是模型 xgboost,没有调参,也就是默认的参数。我们的主要精力放在寻找特征上,在决赛中我们可能考虑用 lightgbm,因为决赛数据是预赛数据的10倍,所以为了尽快看到结果,所以会选择 lightgbm。

3.特征工程方面

在广告点击率和转化率的特征中,特征可以分为三类,一是 categorical feature (无序特征),二是 ordinal feature(有序特征),三是 numberical feature(数值特征)。我们队对于特征的处理如下:

(1)使用统计频率、转化次数特征、转化率特征代替 onehot ,这里我们对 label=1的用户进行统计分析,针对用户的历史交互,安装 app 等信息,从用户的角度去思考可能决定他点击广告后发生激活的原因,由此提取出一些可能的特征,之后再进行特征提取以及验证。

(2)对训练集和测试集中的重复样本构造是否第一次点击,是否中间点击,是否最后点击,第一次和最后一次间隔特征。

(3)大量使用组合特征,主要是用户特征和广告上下文特征。

总结

在初赛过程中,我们不断地挖掘特征,检验特征,阅读 kaggle 上竞赛获奖者的开源代码等,尽管我们目前的成绩不是太好,但是我们真正学到了东西,正所谓,一次参赛,终身受益。最后感谢腾讯为我们提供的平台和服务。

最后预祝小伙伴们在决赛中取得好的成绩。谢谢。

  • 发表于:
  • 原文链接:http://kuaibao.qq.com/s/20180112A0GW3U00?refer=cp_1026

同媒体快讯

相关快讯

扫码关注云+社区