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

相关文章

来自专栏机器之心

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

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

22620
来自专栏美团技术团队

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

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

21430
来自专栏AI研习社

只需连接电脑摄像头,就能用深度学习进行实时对象检测

实时对象检测是一个非常有趣的话题。 我们应如何可靠地检测视频输入中的人和其他现实生活中的物体? 最近我设法构建了一个非常简单的应用程序,只需连接到用户的电脑网络...

21320
来自专栏WeTest质量开放平台团队的专栏

机器学习在启动耗时测试中的应用及模型调优(一)

启动耗时自动化方案在关键帧识别时,常规的图像对比准确率很低。本文详细介绍了采用scikit-learn图片分类算法在启动耗时应用下的模型调优过程。

20230
来自专栏CDA数据分析师

译 | 在R中使用quadprog包求解二次规划

本文由CDA作者库成员HarryZhu翻译,并授权发布。 CDA作者库凝聚原创力量,只做更有价值的分享。 概述 本文将探究一个被称为二次规划的优化问题,这是一种...

35490
来自专栏IT派

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

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

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

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

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

12220
来自专栏机器学习AI算法工程

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

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

48750
来自专栏新智元

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

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

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

AI 每周必读:The Ones

【AI100 导读】人工智能真的只需要懂些高数,会用深度学习框架跑示例就可以了吗?投稿会议之前将 paper 发布在 arXiv 上,盲审如何保证公平?一起来看...

387120

扫码关注云+社区

领取腾讯云代金券