腾讯社交广告高校算法大赛——心得

腾讯社交广告高校算法大赛——心得

Another url: https://bulihanjie.github.io/2017/05/21/腾讯社交广告高校算法大赛心得/git


##感想
写了这东西以后,就感受本身像是立了个flag同样……github


##特征的选择
  关于特征选择,其中有两个方面是应该值得关注的。
  一方面是特征的重要性,特征的重要性反映的是特征对模型效果的影响程度,理论上重要性越高的特征应该保留下来,而重要性较低的会考虑删除。特征越多,会使得模型越复杂,减小没必要要的特征会使得模型更加稳定。其中经常使用的方法能够考虑xgboost中计算的特征重要性,或者是经过扰乱某个特征值的次序根据模型效果变化来得出。特征重要性计算的方法很多,你们能够再网上查找一下。
  另外一方面是特征分布是否一致,特征分布主要考虑的是线上和线下的分布差别。因为此次比赛的数据具备时序性,而且不少选手也由于在提取特征时由于信息泄露的缘由致使线下成绩提高而线上成绩下降,这些问题均可以经过特征值的分布差别来排除掉,当分布不一致的特征,咱们应该优先删除。特征分布差别,简单的能够经过线下和线上特征值的均值、标准差差别来考虑,或者基于其它的统计学的方法。
经过特征的重要性和分布综合考虑,应该就能够获得比较理想的特征效果了。web


##特征生成
  关于特征生成,大致上能够分为两个大方向。
  一个方向就是俗称的“拍脑壳”,根据我的对于数据观测、题目理解等考虑,得出的一系列规则转化为特征。这样很容易就会产生一系列有用或者无用的特征(好比one-hot、各类的转化率、点击量等特征),其中不少的特征所表明的意义实际上是重复的,好比对各类ID作转化率的特征,当特征数量愈来愈多后,提取这类的特征会显得毫无心义。因此应该多角度的来提取特征,使得特征之间造成互补。
  一方面是经过其它模型的结果来生成各类特征,其中可否经过深度学习来产生新的特征?LDA来分析用户和app之间的关系?特征之间不断的组合可否产生比较好的特征?这须要经过对数据的理解,不断的尝试和分析。不过个人并不建议那么快的考虑用其它的模型来生成特征,毕竟这种方法生成的特征有时候并不能很好的理解,而且须要的工做量也比较大,有时候生成的特征也并不必定有效果。算法


##模型的理解
  群里面不少的同窗知道该用哪一个模型,可是并无理解模型的原理,因此把不少的时间浪费在模型的选取和调参上。事实上,咱们应该先对模型有个比较基础的了解,明白模型以及各个参数的原理,这样才能指引咱们若是去生成模型适合使用的特征以及怎样去调参。好比,我选取的模型是xgboost,基本上我是没怎么使用one-hot的特征。
  对于刚开始比赛来说,模型应该是简单点比较好,这样主要为了方便特征的生成和选择。当特征方面的工做作到必定的程度上,则能够考虑更复杂的模型来提升效果了。至于模型融合等方面的资料,能够参考网上从来各类比赛分享的资料了。app


##建议
  参加比赛的时候,不少时候选手会由于效果很差等各类缘由不免产生比较浮躁和消极的情绪。但我以为,参加比赛来说,最重要的是在比赛中有所收获而且提高本身,最直接的方法就是多想多作,而不是光想不作。毕竟比赛的竞争是比较激烈的,获奖的名额比例也不高。或许最后什么名次也没拿到,可是经过不断的提高本身或许之后工做能够升职加薪呢,而这样算下来的钱应该比一个比赛的奖金要多吧。svg