【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 条评论
登录 后参与评论

相关文章

来自专栏腾讯移动品质中心TMQ的专栏

启动耗时可以这样测~

启动耗时作为App一项核心性能指标,腾讯地图现在是基本上每个版本都会进行数据的收集。纵向的对比(与自己)之前我们都依赖于开发埋点,横向的对比(与竞品)就是人工拿...

3557
来自专栏媒矿工厂

【视频编码】 Content Aware ABR技术(十二)

在本系列前面的帖子中,我们连续梳理了Netflix、YouTube、Beamr、EuclidIQ、Bitmovin、Harmonic、V-Nova、Cisco、...

991
来自专栏机器之心

业界 | 谷歌开源高效的移动端视觉识别模型:MobileNet

选自Google Research 机器之心编译 参与:蒋思源 近日,谷歌开源了 MobileNet,它一个支持多种视觉识别任务的轻量级模型,还能高效地在移动...

2776
来自专栏ATYUN订阅号

使用LSTM预测比特币价格

本文以“时间序列预测的LSTM神经网络”这篇文章为基础。如果没有阅读,我强烈建议你读一读。 考虑到近期对比特币货币的泡沫的讨论,我写了这篇文章,主要是为了预测比...

3097
来自专栏利炳根的专栏

学习笔记TF067:TensorFlow Serving、Flod、计算加速,机器学习评测体系,公开数据集

TensorFlow Serving 。生产环境灵活、高性能机器学习模型服务系统。适合基于实际数据大规模运行,产生多个模型训练过程。可用于开发环境、生产环境。

3290
来自专栏人工智能

让你的火柴人动起来!DeepMind发布强化学习环境dm

来源:DeepMind 编译:Bot 编者按:今天,DeepMind发表了一篇名为DeepMind Control Suite的论文,并在GitHub上发布了控...

2416
来自专栏量子位

有记忆会推理的可微分神经计算机,DeepMind现在开源了代码

王新民 编译自 GitHub 量子位 报道 | 公众号 QbitAI ? 去年10月,Google旗下DeepMind在《Nature》上发布第三篇论文,宣布搞...

3366
来自专栏专知

专知主题链路知识推荐#5-机器学习算法-决策树完整学习教程

【导读】主题链路知识是我们专知的核心功能之一,为用户提供AI领域系统性的知识学习服务,一站式学习人工智能的知识,包含人工智能( 机器学习、自然语言处理、计算机视...

3419
来自专栏专知

【开源】基于Keras的知识图谱处理实战

【导读】近日,Daniel Shapiro博士利用开源的图结构卷积网络进行知识图谱处理,并应用于交易数据的欺诈检测,其知识图谱处理相关源码也开源出来,并且Dan...

4384
来自专栏AI科技大本营的专栏

手动特征工程已经OUT了!自动特征工程才是改进机器学习的方式

【导读】近年来,我们在自动模型选择和超参数调优方面取得了进展,但机器学习流程中最重要的方面-- 特征工程,在很大程度上被我们所忽略。在本文中,我们将使用 Fea...

1063

扫码关注云+社区