【SPA大赛】如何预测移动 App 广告点击率

1 问题描述

计算广告是互联网最重要的商业模式之一,广告投放效果通常通过曝光、点击和转化各环节来衡量,大多数广告系统受广告效果数据回流的限制只能通过曝光或点击作为投放效果的衡量标准开展优化。腾讯社交广告发挥特有的用户识别和转化跟踪数据能力,帮助广告主跟踪广告投放后的转化效果,基于广告转化数据训练转化率预估模型(pCVR,Predicted Conversion Rate),在广告排序中引入pCVR因子优化广告投放效果,提升ROI。本题目以移动App广告为研究对象,预测App广告点击后被激活的概率:pCVR=P(conversion=1 | Ad,User,Context),即给定广告、用户和上下文情况下广告被点击后发生激活的概率。

2 数据概览

提供的数据主要有以下几种:

1 训练数据文件(train.csv),其中用户、APP等信息为独立文件

2 用户基础特征文件(user.csv),包含用户的年龄性别等

3 用户App安装列表文件(user_installedapps.csv)

4 用户App安装流水文件(user_app_actions.csv),提供了训练数据开始时间之前16天开始连续30天的操作流水,即第1天0点到第31天0点

5 App特征文件(app_categories.csv),提供了每种APP的特征。

6 广告特征文件(ad.csv)

7 广告位特征文件(position.csv)

3.1 初赛数据描述

测试数据从训练数据时段随后1天(即第31天)的广告日志中按照与训练数据同样的采样方式抽取得到。需要根据训练数据所给出的信息,对数据集中Label -1的待预测信息进行预测。

3.2数据预处理

数据的预处理主要通过pandas实现,主要包括了平滑,采样,将数据分级操作。预处理的目的主要是解决以下问题:

1 不同量纲

2 信息冗余

3 定性信息量化

4 缺失值处理

5 提高信息利用率

第一个版本数据处理代码如下:

3.3 问题分析

有这么一句话在业界广泛流传:数据和特征决定了机器学习的上限,而模型和算法只是逼近这个上限而已。

由于数据集里面特征较多,对时序的要求不是很高。于是重点放在了特征的分析与选择上。开始特征选择使用了sklearn里面的feature_selection模块。

但是这个模块跑起来比较占内存电脑实在不给力,特征多起来之后程序运行非常耗时。之后改用pandas直接进行一些统计分析。

同理对每个数据集都进行如上处理。特征的选择主要关注几点:特征是否发散:如果一个特征不发散,例如方差接近于0,也就是说样本在这个特征上基本上没有差异,这个特征对于样本的区分并没有什么用。特征与目标的相关性:这点比较显见,与目标相关性高的特征,应当优选选择。除方差法外,本文介绍的其他方法均从相关性考虑。选择方法主要使用Filter方法。

3.4数据探索

训练模型使用了xgboost,由于github上开发团队把windows文件夹给删了,装这个算法库还破费了一些时间。装上以后简单跑了一下效果还不错:

Xgboost的调参网上也有一些博客讲,通用的方法是使用cv函数,确定几个重要参数的范围。根据cv函数的返回分数调整。另外feature_important分析也很重要,正好在这个函数里面一起看了。

![](//blog-10039692.file.myqcloud.com/1496979354955_4341_1496979370748.jpg)

在这些之后模型的精度也就到极限了,再想提高就需要从特征中重新挖掘可用的信息了。我想到的是交叉统计。直接把id特征相乘,之后再对id乘积的表格中的个数进行统计,这样就增加了一倍多的特征,成绩也有所上升。之后根据编码的原理,把特征进行分级编码,得到一些有效的维度,也还比较有效

4 总结

实际上我们可以使用sklearn完成几乎所有特征处理的工作,而且不管是数据预处理,还是特征选择,抑或降维。如果电脑给力的话,可以用它很方便的完成。在这期间有很多不会的,还需要再磨炼一下水平,有时候哪块不会就拿IRIS(鸢尾花)数据集开刀。学会了再拿到比赛里用。最后发现其实不一定要使用各种特征,因为各个特征也有有随机因素在里面的,如果把特征用的很多,最后模型都不知道拟合到哪去了,关键还是结合赛题背景。

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

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

编辑于

周鸿宇的专栏

1 篇文章1 人订阅

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏大数据挖掘DT机器学习

深度学习:用tensorflow建立线性回归模型

1. TensorFlow 是什么 是一个深度学习库,由 Google 开源,可以对定义在 Tensor(张量)上的函数自动求导。 Tensor(张量)意...

4235
来自专栏深度学习之tensorflow实战篇

算法岗位做数据挖掘大多都是抽特征跑跑现成模型”

这句话,说起来很简单,看起来也很容易,但真的是这样吗? 我列举几点,扩展一下上面这句话: 1、label符合业务场景吗?label准确吗?能够校准吗?放在哪张表...

3239
来自专栏专知

【专知翻译】利用TensorFlow.js在浏览器中进行深度学习

近期,专知小组推出国外经典视频教程推荐系列,这次推出的是Google I/O 2018上TensorFlow.js的精彩视频片段,如何使用TensorFlow....

1924
来自专栏美团技术团队

【AI in 美团】深度学习在美团搜索广告排序的应用实践

AI(人工智能)技术已经广泛应用于美团的众多业务,从美团App到大众点评App,从外卖到打车出行,从旅游到婚庆亲子,美团数百名最优秀的算法工程师正致力于将AI技...

1473
来自专栏IT派

7月机器学习最佳开源项目Top 10

【导读】七月就要结束了,在即将到来的 7 月最后一个周末,人工智能头条为大家整理了本月 ML 最受欢迎的十大开源项目。就算放假在家也可以知道大家现在都在学些什...

621
来自专栏腾讯开源的专栏

【开源公告】腾讯 AI Lab 正式开源业内最大规模多标签图像数据集

2018年10月17日,深圳 - 今日,腾讯AI Lab宣布正式开源“Tencent ML-Images”项目,该项目由多标签图像数据集ML-Images,以...

842
来自专栏机器之心

超参数搜索不够高效?这几大策略了解一下

当然,并非所有变量对模型的学习过程都一样重要,但是,鉴于这种额外的复杂性,在这样一个高维空间中找到这些变量的最佳配置显然是一个不小的挑战。

1531
来自专栏新智元

AutoML又一利器来了,谷歌宣布开源AdaNet(附教程)

今天,谷歌宣布开源AdaNet,这是一个轻量级的基于TensorFlow的框架,可以在最少的专家干预下自动学习高质量的模型。

1245
来自专栏专知

【干货分享】177页鲁棒机器学习教程(附Slides全文下载)

【导读】本文为大家整理了俄勒冈州立大学的杰出教授Thomas G.Dietterich的鲁棒机器学习教程,具体内容如下。

843
来自专栏机器学习算法工程师

详解基于内容的推荐算法

本文介绍的将会是推荐系统最古老的算法:基于内容的推荐算法(Content-Based Recommendations CB)。

4043

扫码关注云+社区