一、赛题

赛题内容
本次比赛以阿里电商广告为研究对象,提供了淘宝平台的海量真实交易数据,参赛选手通过人工智能技术构建预测模型预估用户的购买意向,即给定广告点击相关的用户(user)、广告商品(ad)、检索词(query)、上下文内容(context)、商店(shop)等信息的条件下预测广告产生购买行为的概率(pCVR),形式化定义为:pCVR=P(conversion=1 | query, user, ad, context, shop)。
结合淘宝平台的业务场景和不同的流量特点,我们定义了以下两类挑战:
(1)日常的转化率预估
(2)特殊日期的转化率预估

评估指标
通过logarithmic loss(记为logloss)评估模型效果(越小越好), 公式如下:
其中N表示测试集样本数量,yi表示测试集中第i个样本的真实标签,pi表示第i个样本的预估转化率。

预测目标

最终预测结果为对应样本产生购买的概率,在0~1之间,与实际购买情况之间的logloss越低越好。

大赛官网:

https://tianchi.aliyun.com/competition/information.htm?spm=5176.100067.5678.2.65cd4558t2U77U&raceId=231647


二、数据

官方提供的数据已生成好train和test文件,在A榜和B榜时分别会提供test文件,只需对train与test文件进行特征提取及处理即可,无需再读入其他文件。

本次比赛为参赛选手提供了5类数据(基础数据、广告商品信息、用户信息、上下文信息和店铺信息)。基础数据表提供了搜索广告最基本的信息,以及“是否交易”的标记。广告商品信息、用户信息、上下文信息和店铺信息等4类数据,提供了对转化率预估可能有帮助的辅助信息。

大赛提供的数据格式为txt格式,分隔符为空格,在pandas中使用read_table读入 ,以分隔符sep = ' ',读取训练数据和测试数据。


三、数据分析

进入复赛后的A榜,数据量还较小,只在训练集train的1/3左右,训练集train的数量在120w条左右,由于内存容量有限,也为了保证训练集和测试集有较相近的分布,在经过粗略估计test_a的数据量是train采样1/3的效果,在采样读取中使用到到read_table中提供的跳行读取的接口skiprows,使得其以1/3的概率为False即可完成只读取1/3数据量的效果。此外,本次比赛中第一次用到了内存回收gc,由于在过程只,产生的中间变量会占用大量内存,为了节省内存空间,在del 相关变量后,还需要使用内存回收命令gc.collect()来完成内存的回收,用以释放内存。

import pandas as pd
import numpy as np
import seaborn as sns
import matplotlib.pyplot as pltfrom sklearn.model_selection import StratifiedKFold
#from lxyTools.singleModelUtils import singleModel
from sklearn.metrics import log_loss
import lightgbm as lgb
#from lxyTools.featureSelect import maximalInformationCoef
#from lxyTools.featureSelect import micCompute
import random
import gc
gc.collect()
random.seed(10)flag=False
def rowRandomSelect(x):global flagif not flag:print('a')flag=Truereturn Falseelse:return random.random()>0.33testData = pd.read_table('./Data/round2_ijcai_18_test_a_20180425.txt', sep=' ')
trainData = pd.read_table('./Data/round2_train.txt', sep=' ', skiprows=rowRandomSelect)

由于点击的发生是一个时序的事件,需要对时间戳进行处理,在原始数据中提供的是以s为单位的原始时间数据,需要进行标准转化,使用pandas库自带的to_datetime函数进行转化。由于原始提供的数据每一整天(24h)的样本都是从前一天下午16:00-第二天下午16:00,这样不便于数据分析,和我们正常理解的一天也有偏差,选择对数据进行偏移,整体时间都增加8小时,转化到一天为0点到24点,并且在转化后的数据图形化分析时,发现前一天的24点和后一天0点的数据也基本能接上,表示这一偏移是合理的。

trainData['context_timestamp'] = pd.to_datetime(trainData['context_timestamp'], unit='s')testData['context_timestamp'] = pd.to_datetime(testData['context_timestamp'], unit='s')trainData.context_timestamp += pd.to_timedelta('8:00:00')    # 进行时间偏移,将一天的时间跨度由16:00偏移到00:00开始的跨度
testData.context_timestamp += pd.to_timedelta('8:00:00')

从转换完的标准数据中将日期 和 小时 的时间信息分出来,并将日期转换为第几天的样本,方便数据分析,之后即可获得样本中的点击数量、购买数量等数值统计信息,统计在各小时内的点击数量(count)及转化数量(is_trade),然后采用seaborn库进行可视化的数据分布分析,观察在各天内各小时的点击情况。

plt.figure()
sns.countplot(trainData.hour)plt.figure()
sns.countplot(trainData.day)   # 从这里可以看出 在第6天时的浏览量远超其他天的浏览量,预计第6天为节前的一天,用户大量浏览商品g = sns.FacetGrid(alldata, col="day")
g.map(sns.countplot, 'hour')g = sns.FacetGrid(alldata, col="day")
g.map(sns.countplot, 'hour')
g = sns.FacetGrid(trainData, col="day")
g.map(sns.barplot, 'hour', 'is_trade')g = sns.FacetGrid(trainData, col="day")
g.map(sns.barplot, 'user_gender_id', 'is_trade')g = sns.FacetGrid(trainData, col="day")
g.map(sns.barplot, 'user_occupation_id', 'is_trade')

然后对一些list类型中的id类进行了试探性的统计分析,最后只发掘出了item_category_list中的第二个id与is_trade有一点相关(应该说是is_trade在这个id上分布不太一致),其他id类没有明显的区别。

————————————明日再更————————————

IJCAI-18阿里妈妈广告搜索转化预测 总结相关推荐

  1. IJCAI 2018 阿里妈妈广告预测算法大赛

    背景 本项目是天池的一个比赛,由阿里妈妈和天池大数据众智平台举办的广告预测算法大赛,本次参赛人数5200多个队伍,而我们只取得了731的成绩,最遗憾的是当我们写好CNN预测结果准备上传,队伍却意外解散 ...

  2. 阿里妈妈广告商品点击数据分析

    阿里妈妈广告商品点击数据分析报告 一.分析背景与目的 数据源:[https://tianchi.aliyun.com/dataset/dataDetail?dataId=56] 阿里妈妈发展势头迅猛, ...

  3. CSDN博客放阿里妈妈广告代码的方法

    CSDN博客放阿里妈妈广告代码的方法.最近阿里妈妈广告投放平台以其新颖的模式,符合互联网本质的方法,以迅猛发展的势头向传统广告商发起挑战,阿里妈妈的口号是:只要你有网站,只要你有博客,甚至,只要你可以 ...

  4. 阿里妈妈广告进入联合早报网

    阿里妈妈广告进入联合早报网,有图为证: 上图为单条早报新闻的页面截图,图中右上角和左下角的广告均是阿里妈妈系统提供的广告.示例原文地址为http://www.zaobao.com/zg/zg08100 ...

  5. 感觉有些阴险的阿里妈妈广告。。。。

    感觉有些阴险的阿里妈妈广告.... 我在我的公告栏申请了个阿里妈妈广告...现在广告放上去了.在阿里妈妈管理平台里面,确没有交易记录. 很多人去他那边申请广告位.没有购买就等于免费给阿里妈妈做广告.. ...

  6. 用ControlJS优化阿里妈妈广告

    长时间以来阿里妈妈的广告载入策略一直存在些问题,很多页面也因为阻塞式的广告载入而被拉低性能,影响用户体验.毕竟阿里妈妈广告的渲染依赖于诸多嵌套的document.write.ControlJS的目标就 ...

  7. 推荐!CSDN博客放阿里妈妈广告代码的方法

    推荐!CSDN博客放阿里妈妈广告代码的方法 分类: 软件之外2009-12-28 13:46 427人阅读 评论(0) 收藏 举报 最近阿里妈妈广告投放平台以其新颖的模式,符合互联网本质的方法,以迅猛 ...

  8. 按键精灵刷阿里妈妈广告联盟源码 V1.1版

    //V1.1版  点两次是一样的,去掉. //by小黄人软件 //按键精灵刷阿里妈妈广告联盟源码 后台运行 并显示点击次数 UserVar Yanshi=2000 "时间(毫秒)" ...

  9. 按键精灵刷阿里妈妈广告联盟源码 后台运行 并显示点击次数 亲测有效

    按键精灵刷阿里妈妈广告联盟源码 后台运行 并显示点击次数 UserVar Yanshi=2000 "时间(毫秒)" UserVar Num=0 "次数" //h ...

最新文章

  1. 写出一个超强的lighttpd模块
  2. Mybatis 中使用CDATA
  3. ambari集成mysql_Ambari 安装配置 MySql
  4. 使用dom breakpoint找到修改属性的javascript代码
  5. 你的网页加载太慢了怎么办?
  6. SQL UPDATE with INNER JOIN
  7. openoffice转换过程中遇到繁体字文档转换失败的问题
  8. (36) css企业代码书写规范
  9. golang 包含 数组_在 Golang 中如何快速判断字符串是否在一个数组中
  10. python np数组中括号里面‘:n‘与‘n:‘什么意思
  11. The process cannot access the file '' because it is being used by another process.....
  12. 纯真数据库 解析 php,PHP解析纯真IP数据库(qqwry.dat)
  13. linux硬盘对拷ghost教程,用dd实现linux硬盘备份 GHOST
  14. 零线和地线的区别、示波器如何测量市电
  15. 四川教师职称计算机考试试题,四川省中小学教师职称计算机应用能力考试、外语免试审批表.doc...
  16. 2020中国人工智能产业链企业图谱(名单)
  17. 7 11 藏尾诗c语言,为你写诗:11种杂体诗,汉语太神奇
  18. 数据库语法整理及WAF绕过方式
  19. HPUoj1210: OY问题 [搜索](DFS
  20. 【计算机基础】多媒体技术、网页制作、计算机网络

热门文章

  1. C#基于Twain协议调用扫描仪,设置多图像输出模式(Multi image output)
  2. java之详解坦克大战_Java之详解坦克大战游戏(一)
  3. Python循环语句(while循环、for循环)
  4. java号段_Java匹配国内手机号码段
  5. 天正建筑T20图层英文变中文
  6. 编程之类的文案_有什么让人瞬间充满希望的文案?
  7. 阿里布局大数据 盈利模式还需探索
  8. 路遥《平凡的世界》经典哲语
  9. 公共关系礼仪实务章节测试题——公共关系的类型(三)
  10. 浪潮nf5270m4导轨安装_浪潮NF5270M4安装windows2012+FTP服务器