【 SPA大赛 】数据测试与特征工程的优化思路

大家好,我们是吃茶少年团队,这是我们团队第一次参加比赛。由于没什么经验,走了很多很多的弯路,我们在比赛中跟随大佬亦步亦趋地摸索前进。目前成绩在24名,写下这篇比赛心得,希望能共同交流、进步。

数据方面

关于训练集、测试集的选取上:由于比赛数据是时序的数据,所以我们首先想到的思路是尝试用17-29日的数据预测30日,使用这样的训练集、测试集设置线下的对数损失很小,但是线上和线下的增减时而同步时而不同步。然后,经过我们多番尝试最终选择了随机70%生成为训练集、30%为测试集,调整随机数种子使得线上和线下尽可能同步。

关于本次比赛的数据,我们可以把比赛给定的14天中每3个小时的转换率画出来,如下图所示。我们可以明显看到最后几天转换率偏低,这是由于用户转换时间存在延迟造成的,对最后几天数据有影响,也就是说最后几天的数据存在噪音,转换率偏低。如果想要把最后加入训练集,那么需要最后对预测结果进行一个修正过程,可以通过Logistic反函数对预测概率进行修正。同样,在这个图中可以看到19号的上午和20号的中午存在两个转换率特别异常高的时段,我们可以分析为什么这两个时间段转换率特别高,这对我们数据清洗有一定帮助。

特征工程

关于特征工程方面,我们首先尝试了一些基本的组合特征,把各id类特征组合起来使用点击数、转换数、转换率来表达。通过这些基础的组合统计特征,使得分数上涨了2个千分点。我们把过程中尝试的特征过程展示如下表所示:可以看到每次成绩的大进步都是依赖于新的强特征的增加。

特征组合

线上成绩

ID类特征进行one-hot编码,使用LR进行分类

0.1072

把所有原始特征进行merge,使用xgboost进行分类

0.1036

原始特征+组合统计特征

0.1010

原始特征+组合统计特征+时间序列特征

0.0989

bagging+原始特征+组合统计特征+时间序列特征

0.0987

之后的找新特征过程,我们主要按照三个方面来找:

1 . 从业务的角度,即我们去猜测用户点击广告后是否发生转换可能与哪些因素有关。这部分通过猜测结合分析数据来实现,生成特征后使用groupby来确定这个新特征是否会对label的分布造成影响。比如在下面这张图中,我们通过groupby命令,connectionType这个变量不同的取值对label的分布有较大影响,可见connectionType这个变量对是否转换影响还是很大的。

2 . 从模型提供的信息,我们使用了xgboost这一模型来训练,通过xgboost给出的特征重要性,主要观察特征重要性在前面的特征,考虑这些特征是否可以有更好的表达。在下图xgboost给出的特征重要性中,我们可以看到ID类的特征都占据着十分重要的特征,对于这些重要性很高的特征,我们尝试把这些特征进行两两组合,而对特征重要性很低的特征比如app平台等我们可以考虑把他们去除。把这些无用的特征去除,可以加快训练模型的速度,也可以避免对模型产生干扰。

3 . 多与人交流。我们产生的很多新特征都来自于群里小伙伴的讨论中,从大家的讨论中得到一些灵感,积极借鉴大佬们的思路,借此生成新的特征。比赛中经常会出现较为隐蔽、但对分类效果提升很大的特征,这些magic特征往往来自于各个小伙伴的灵光一现,多关注群里的进展,往往可以获取这些magic特征,从而使成绩飞跃。

心得

  1. 多看比赛经验,我们参考了Kaggle上的一些比赛心得,特别从获胜者的代码中学到了很多技巧。比如从台大avazu获胜的代码中,用效率更高的词典来代替pandas的merge命令,这些代码技巧可以使得数据处理时间上大为减少。
  2. 多观察数据。原始特征的表达决定了成绩的上限,强特征往往来自于数据之间的隐含关系,找到强特征相当于把这件分类的事情以一个更好的表达方式告诉给算法。类似的比赛中往往有很多经典的特征,可以模仿前面比赛的思路。
  3. 多和其他参赛者交流。群里有很多大佬,提供着不一样的思路,借鉴大佬们的思路,相当于做一个stacking,参考大佬们的经验增加思路,会取得更好的成绩。

第一次参加比赛,收获很多,最后感谢腾讯提供的比赛、感谢队友、感谢群里的大佬。

原创声明,本文系作者授权云+社区-专栏发表,未经许可,不得转载。

如有侵权,请联系 yunjia_community@tencent.com 删除。

编辑于

马卓然的专栏

1 篇文章1 人订阅

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏数据科学与人工智能

【教程】机器学习Python教程:2机器学习术语

这意味着分类器在42个案例中正确地预测了为男性,并错误地预测了8个男性案例为女性。它正确地预测了32例女性,18例被错误地预测为男性而不是女性。

782
来自专栏PPV课数据科学社区

七种数据分析领域中最为人称道的降维方法

近来由于数据记录和属性规模的急剧增长,大数据处理平台和并行数据分析算法也随之出现。于此同时,这也推动了数据降维处理的应用。实际上,数据量有时过犹不及。有时在数...

3234
来自专栏CDA数据分析师

基于R语言的梯度推进算法介绍

简介 通常来说,我们可以从两个方面来提高一个预测模型的准确性:完善特征工程(feature engineering)或是直接使用Boosting算法。通过大量数...

2087
来自专栏机器之心

CVPR2018 | CMU&谷歌Spotlight论文:超越卷积的视觉推理框架

选自arXiv 作者:陈鑫磊等 机器之心编译 参与:张倩、李泽南 人类在看到图像时可以进行合理的推理与预测,而目前的神经网络系统却还难以做到。近日,来自卡耐基梅...

2618
来自专栏AI研习社

AI股市预测实战:用LSTM神经网络预测沪深300未来五日收益率

摘要:BigQuant平台上的 StockRanker 算法在选股方面有不俗的表现,模型在 15、16 年的回测收益率也很高 (使用默认因子收益率就达到 17...

3366
来自专栏新智元

10000+谷歌员工学过的谷歌内部图像分类课程公开了!

943
来自专栏CSDN技术头条

深度学习对抗样本的八个误解与事实

【编者按】在kdnuggets此前发布的文章(Deep Learning’s Deep Flaws)’s Deep Flaws中,深度学习大神Yoshua Be...

1849
来自专栏目标检测和深度学习

CVPR2018 | CMU&谷歌Spotlight论文:超越卷积的视觉推理框架

选自arXiv 作者:陈鑫磊等 机器之心编译 参与:张倩、李泽南 人类在看到图像时可以进行合理的推理与预测,而目前的神经网络系统却还难以做到。近日,来自卡耐基梅...

2726
来自专栏吉浦迅科技

手撕深度学习算法开讲:先简单撕撕SVM

说在前面 我们的手撕深度学习算法讲坛终于要开始了。 本次手撕系列的讲师们都来自台湾机器学习读书会,他们是这样一群人: ? 他们的工作甚至跟深度学习没有太相关, ...

37815
来自专栏ATYUN订阅号

赫尔辛基大学AI基础教程:机器学习的类型(4.1节)

每张图片上方都会显示正确的标签(本应写入的数字)。请注意,某些“正确的”类标签是存疑的:例如,请参阅左侧的第二个图像:那是7还是4?

908

扫码关注云+社区