第一次接触这样的比赛,前期花了很多时间来尝试错误的处理方式,特征筛选方式,靠了很多拍脑门决定的以及突发奇想的特征拿到了初赛66名。想一想真是全看运气。
不过,也是有很多特征是经过一个很煎熬的过程,直到某一刻才发现的。比如我在这篇文章中重点介绍的两个特征,posflag,stay_time.
1.特征工程是成功的99%。
2.单特征得分很高的,并不一定和其他特征很搭。
3.特征工程本质上是求特征的最优组合,是一个搜索问题。
So,你得先有特征才行。
1.这两个特征相关性不能太强,相关性太强,做了等于白做。比如第一个特征为x,第二个特征为y,假设相关性太强以至于y=f(x),那无论你怎么交叉,你都是在用x这一个属性。
2.尽量避免出现(a,b),(b,c)这样的交叉特征组合,保证每个特征只有一个交叉特征,原理同1。
3.二阶的交叉特征其实FFM,FM都可以自动化生成,但其实对解决问题来说,并不一定有好效果。
So,你的交叉特征只是一部分。
1.这才是解决问题的核心。
2.在这个回流率预估的情境下,又知道广告位价钱不等,所以我们可以先考虑一下,广告位有什么特点。
3.为什么会有推广计划,推广计划决定了对象,那么推广计划对于ROI之外的回流率肯定很低吧?
4.有一个很重要的,但是又常常被忽略的特征,停留时间。
还记得那天我刚加进去二群(一群满了),抱着投桃报李的心态,这个特征我在二群提出来。。。可惜太年轻了。
当天我的QQ快爆炸了,都是来要特征的。之后我在群里开源了,结果他们不会用。。。orz。。。。
这个特征就是贝叶斯平滑后的positionID的回流率。
曾经有一段时间,我统计了positionID的回流率,但是点击次数有的特别少,还有的竟然点击1转化1,这个要是当特征,简直爆炸。
我想,次数多的比较可信,但是次数低的怎么处理呢,而且次数低的在未来出现的次数会很多,又不能删掉,咋办呢?
于是我找到了一种方式:贝叶斯平滑
很明显,处理之后不会出现转化率为1或0的情况了,而且转化率连续性更好了。
这个使得点击次数多的,转化率几乎不变,次数少的,转化率大变。- -
其实这个特征基于一个假设。
我先统计了所有的训练集然后放到训练集上当特征,其实这时候应该是过拟合的,but,线上提高了两个千分点。
我思考了一下,可能positionID所代表的广告位其实无论放啥,平均回流率都差不多,所以你统计的越多反而越准。
stay_time=对同一用户,记录与上次点击的时间差,如果是第一次点击,置为-1
这个特征一开始我觉得应该不会有用,因为这个数不准。
BUT,它解决了连点好几次的问题啊,这个就是trick。
复赛开始了,看到这个数据集大小我已经瑟瑟发抖,有空再继续更新 吧。。。To be continued。。。
.
.
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。