【 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 条评论
登录 后参与评论

相关文章

来自专栏新智元

重磅 | 谷歌发布Graph Learning平台,解密图像识别核心技术(附论文)

近来机器学习突飞猛进使计算机系统能够解决现实世界中的复杂问题。其中之一便是谷歌的大规模、基于图的机器学习平台,这是由 Google Research 的 Exp...

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

机器学习和统计模型的差异

在各种各样的数据科学论坛上这样一个问题经常被问到——机器学习和统计模型的差别是什么? 这确实是一个难以回答的问题。考虑到机器学习和统计模型解决问题的相似性,两者...

2866
来自专栏机器之心

学界 | 5.5%语音识别词错率究竟如何炼成?IBM发布相关研究论文

选自arXiv 机器之心编译 参与:晏奇、吴攀 语音识别是人工智能领域所研究的核心问题之一,研究者一直以来都在竞相努力以期能首先达到比肩人类的里程碑。去年十月,...

34312
来自专栏机器学习算法与Python学习

长文 | 一文读懂什么是机器学习

关键字全网搜索最新排名 【机器学习算法】:排名第一 【机器学习】:排名第一 【Python】:排名第三 【算法】:排名第四 在进入正题前,我想大家心中可能会有一...

3505
来自专栏企鹅号快讯

人工智能与机器学习有哪些不同

每天读一篇一线开发者原创好文 来自:51CTO.COM,作者:RickyHo,刘妮娜译 链接:http://network.51cto.com/art/2017...

2120
来自专栏AI科技评论

京东 AI Fashion-Challenge 挑战赛冠军方案详解(风格识别+时尚单品搜索)

AI 科技评论按:随着消费升级时代的来临,中国时尚消费市场正渐渐变得更加个性化、精致化和多样化,服饰的时尚风格对消费动机的影响愈渐加深,而随着 AI 技术的发展...

492
来自专栏人工智能头条

Google研究员Ilya Sutskever:成功训练LDNN的13点建议

1156
来自专栏CDA数据分析师

技能 | 开发者成功使用机器学习的10大诀窍

基于云的机器学习工具带来了使用机器学习创造和提供新的功能的可能性。然而,当我们使用不当时,这些工具会输出不好的结果。想要在应用程序中成功地融入机器学习的开发者...

17810
来自专栏奇点大数据

谷歌大脑AutoML新进展:用进化算法发现神经网络架构

作者|谷歌大脑高级工程师 Esteban Real 编译|Debra 从 5 亿年前非常简单的蠕虫大脑到各种现代化结构,大脑经历了漫长的进化过程。如今,人类的大...

3565
来自专栏AI科技评论

干货 | “回归分析”真的算是“机器学习”吗?

是什么将“统计”从“机器学习”中分离出来的?个被讨论过无数次的问题。关于这个问题的文章有很多,人们对其好坏莫衷一是。但是我发现,在“统计”和“机器学习”的争论上...

3117

扫码关注云+社区