【SPA大赛】预测广告转化率实战心得

大家好,我是来自华中科技大学计算机系的肖洋。第一次参加这种机器学习类的比赛,侥幸进了决赛,也来分享一下比赛心得体会。

一、问题与数据分析

这次比赛是预测广告转化率的问题,就是预测某个用户点击某广告之后发生转化的概率,这显然是一个二分类问题。首先简单对数据做一下统计,发现这里面正类负类比例严重失调,正类也就是发生转化的样本只占了总样本的2.5%。一上来我使用随机深林做了一下简单预测,发现预测的结果当中最大的概率也不超过0.5,所以我感觉很不靠谱,另外在知乎上看到有人说这是一个imbalance learning的问题,所以我就看了各种文章,使用里面的过采样、欠采样等方法,但是效果都不好,很明显我掉到坑里面了。总结一个经验吧,数据和实验结果才是王道,不要老凭自己的感觉去揣测。

二、特征选择

“特征决定上限,模型只能原来无限逼近这个上限”,这次比赛我确实深刻体会到了这个至理名言。特征工程是数据预测里面最重要的环节,没有之一。

首先是特征选择因为没有做过类似的比赛,所以一上来我就急急忙忙开始用随机深林的feature_importance做特征选择,这毫无疑问是费时而且错误的选择。其实有两种很简单的方法可以用来观察特征的重要性:第一种是通过data.groupby('feature').mean()'label'方法,得到这个样本在各个取值下的均值,然后再求一次方差,就知道这个特征的重要性了;另一种是通df=data.groupby('connectionType','label').size()来观察一下在给特征取不同值的时候正负样本的比例,如果取不同值的时候比例相差很大,这个特征十有八九是一个强特征。

其次是各种特征的挖掘、组合等,这些隐藏的特征才是决定成绩的关键。特征挖掘方面,主要是各种统计变量,例如用户安装的app个数、与各种特征对应的点击量、转化量、转化率等;特征组合方面,可以通过groupby('feature1','feature2').size()来简单统计一下组合特征下的label情况,然后选择最重要的特征组合。听大佬说connectionType和positionID是一个很重要的组合特征,可能我没有用好,导致了我和前面队伍的差距。

三、数据处理

数据处理方面我也没有花太多功夫,主要是对某些与转化率相关的特征做了一下贝叶斯平滑。为什么要做平滑,举个例子,对于特征creativeID,比如取值为100的样本只出现了一次,没有发生转化,由于样本太少,我们并不能直接认为取值为100的样本转化率为0,毕竟样本太少,没有说服力。贝叶斯平滑的文章参考http://blog.csdn.net/mytestmy/article/details/19088519

四、模型选择

我使用过四种模型,随机深林、逻辑回归、xgboost和fm。其中随机深林效果最差,当然也有可能是我把这个模型用废了,逻辑回归其次,fm比xgboost稍微好一点,可能是因为fm考虑了特征的组合。另外提一句,在我的实验过程中调参对于结果的影响是微弱的,所以个人建议不要把太多的时间花在调参上面了。

最后希望自己能在决赛当中取得一个好成绩。

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

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

编辑于

肖洋的专栏

1 篇文章1 人订阅

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏AI派

矩阵分解之SVD和SVD++

上述两个问题,在矩阵分解中可以得到解决。原始的矩阵分解只适用于评分预测问题,这里所讨论的也只是针对于评分预测问题。

4063
来自专栏机器之心

SIGIR 2018 | 大会最佳短论文:利用对抗学习的跨域正则化

近期学界有多个神经排序模型被提出,这些模型通过考虑原始查询-文档文本(query-document text)[14]、基于确切的查询词项匹配文档的模式 [5]...

492
来自专栏AI研习社

神经网络当真学会推理了?来看谷歌DeepMind的官方解释 | 2分钟读论文

来源 / Two Minute Papers 翻译 / 程炜 校对 / 李宇琛 整理 / 雷锋字幕组 第4期带来谷歌DeepMind团队的论文,如何让神经网络学...

3115
来自专栏机器之心

专栏 | 机器学习实战:Python信用卡欺诈检测

机器之心专栏 公众号:数据先锋(data_pioneer) 作者:唐宇迪 对信用卡交易数据建立检测模型,使用Python库进行预处理与机器学习建模工作,代码通俗...

3698
来自专栏华章科技

数据科学家必会10个统计分析方法(附学习资源)

无论你在数据科学中是何种立场,你都无法忽视数据的重要性,数据科学家的职责就是分析、组织和应用这些数据。

682
来自专栏机器之心

吴恩达授课,斯坦福CS230深度学习课程资源开放

课程地址:https://web.stanford.edu/class/cs230/

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

吴恩达授课,斯坦福CS230深度学习课程资源开放

课程地址:https://web.stanford.edu/class/cs230/

1264
来自专栏机器之心

学界 | DeepMind提出对比预测编码,通过预测未来学习高级表征

作者:Aaron van den Oord、Yazhe Li、Oriol Vinyals

964
来自专栏AI研习社

教程 | Hinton 机器学习视频中文版:机器学习算法的三大类(1.5)

本套课程中,Hinton 重点介绍了人工神经网络在语音识别和物体识别、图像分割、建模语言和人类运动等过程中的应用,及其在机器学习中发挥的作用。与吴恩达的《Mac...

33110
来自专栏Petrichor的专栏

思考: “泛化”是任人打扮的小姑娘

同理,泛化误差的存在就是为了防止学习器把训练样本学得太好了,导致可能已经把训练样本自身的一些特点当做了所有潜在样本都会具有的一般性质。

1244

扫码关注云+社区