一次失败的广告转化率预估比赛

2017年5月16日
最近这一个星期大概有一半时间都在研究这个问题,感觉时间过得挺快的,每条都很忙很充实。
拿到这个问题之后,对于题目的理解就有很多疑问。感觉题目将整个时间线分为了:点击广告时间——安装APP时间——激活时间。这里就遇到了第一个问题,有激活时间的样本却没有查找到安装APP时间,我们认为这是非常不合理的。
随后我们进行了初步的特征选择,对于很多ID类特征感到十分棘手,本着先使用一些简单特征出一个结果的想法,我们选择了用户年龄,性别,学历,婚恋状态,育儿状态这几个用户特征。
对于模型的选择,我们查看了很多回归模型,最后决定在几个集成模型中的树模型中进行选择,暂定使用GBDT进行训练。
对于训练集,验证集,测试集的处理,随机抽取选择了原始数据集中的80%做训练集,剩余的做验证集,计算损失函数,并观察预测结果。得到的结果非常不理想,基本上对于所有的样本,预测概率大约都只有0.02左右,且实际label为0的样本与label为1的样本没有任何区分度。
为了解决上面遇到的问题,我们的想法是样本的0-1分布差距很大。正样本数量过少。于是,我们对训练集做了如下处理:先将label为1的样本取出,然后从剩下的样本中随机选择10%的样本,与label为1的样本,组成训练集1,采用同样的方法生成训练集2,3.。。。然后将10个训练集独立训练并使用验证集验证,从中挑选效果好的前5个模型,用于对测试集的预测,并将测试结果加权相加。但是经过这样处理后,结果并没有任何改善。
由于我们的模型对验证集都没有合理的结果,所以我们认为目前存在欠拟合。
随后研究了模型调参,看怎么解决欠拟合问题。主要是要修改最大迭代次数以及权重缩减系数。使用GridSearchCV进行最优参数选择。发现并不理想。
所以,到目前为止,遇到的这个问题是一个核心问题,必须合理的解决。暂时的想法是因为没有做特征工程,必须优化一下特征,才能合理进行预测。
2017年5月20日更新
为了确定模型和特征究竟是哪个出了问题,我们对此进行了两个测试,一个是使用最简单的线性回归模型对现有的特征进行分析,结果是也不能合理区分label的值;另一个测试是通过人为构造一个简单的数据,包括了特征和label,来测试模型的预测效果,结果是模型可以很准确的预测。由此,我们确定了目前存在的问题是特征工程的问题,且情况很严重。
之后我们重新对原始数据的特征进行了提取。
2017年6月5日更新
对于题目中给出的所有直接特征,我们选择了XGboost模型进行训练,相比之前的结果,有了一定的提升。模型具有一定的区分能力。而后我们就针对当前的特征和模型进行调参。调参过程使用的是sklearn的GridSearchCV配合XGboost模型进行网格搜索,寻找最优参数。经过这一调参计划之后,成绩有了一些提升,但提升幅度并不大。
对于这种情况,我仔细思考了一下,还是觉得主要问题来源于特征工程的不足。由于没有相应的数据挖掘项目经验,我们的特征仅仅是把题目中的已知信息做了拼接,这种方法仅仅是一个优秀特征工程中的一小部分,还需要考虑特征的统计量,比如说统计某个id类特征的历史转化数量等等。除此之外,特征组合也是一种重要的方法,有些特征本身的统计信息对模型的训练并不重要,但通过两个特征的组合之后就有价值了,比如说统计两个特征它们共同出现的次数。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值