kaggle案例:广告点击率预估+LR
一、业务背景
- 传统广告与在线广告区别?
传统广告: 类似电视广告,报纸媒体、杂志、广播、户外媒体等。
在线广告: 类似百度搜索广告,facebook页面展示广告。
区别:在线广告更多与用户相关,例,在google上搜索“kids shoes”,则会出现与搜索相关的一些带有广告标签(“Ad”)的连接。例如,淘宝中带有hot标签的物品。
注: 国家规定如果是广告的话,必须带有广告标签。 - 传统广告与在线广告区别?
通过上图可以看到,互联网广告回报率近年来不断上升,主要是存在许多商家对曝光的需求度较高。而且这种在线广告是于用户相关的,而不是一些硬性的广告。例如: google公司广告收入占总收入的90%,所以其他 - 在线广告投放类型
Retarget 基于用户行为的广告: 用户在网站中浏览的一些信息,进行广告投放。
Behavior: 用户在京东和淘宝中浏览一些物品,如果你跳转到一些其他网站,则会发现有一些你曾经看过的一些物品
GEO基于位置: 例如美观点评, 例如用户吃饭。 - 广告角色
平台方:提供广告展示的平台,例如腾讯,百度等
用户方: 即浏览广告的用户
商家: 需要曝光商品的商家。 - 广告收费模式
1) 按曝光收费: 按每曝光多少次收费,这类一般是展示广告,例如腾讯多是展示广告
2) 按点击预估: 点击后收费,特别是百度搜索广告(特别是医疗广告,每点击一次100~200元),淘宝直通车(淘宝大概点击一次2元左右)。
3) 按购买预估: 按购买后收取广告费。这种比较少,广告费比较高,但是一旦发生则利润非常高。 - 点击率计算方式(CPC)
- 点击率预估
可展示广告位置与次数是有限,所以需要尽可能的将用户可能点击的广告展示给用户,使得最终广告费最大。因此需要做点击率预估。 - 广告特征提取
商品角度: 是不是热销商品, 评价率,退货率等,即可表现商品的质量
广告内容: 搜的蓝色牛仔裤,搜索结果是否接近我搜索关键词,也会影响用户点击。
用户偏好: 有些一用户喜欢个性,不喜欢大众的
二、LR做CTR预估
背景
https://www.kaggle.com/c/avazu-ctr-prediction/rules
kaggel广告点击率预估案例code
#load数据
import pandas as pd
data = pd.read_csv('train_small.csv', verbose=False)
data.shape
#import graphlab as gl
#data = gl.SFrame.read_csv('train_subset.csv', verbose=False)
#数据包含列及类型了解
data.info()
#数据概览
data.head(10)
#click点击率baseline
data['click'].mean()
#数据探索
#data.groupby('device_type', {'CTR':gl.aggregate.MEAN('click')})
data['device_type'].groupby([data['device_type'],data['click']]).count()
#数据探索
#data.groupby('C1', {'CTR':gl.aggregate.MEAN('click')})
data['C1'].groupby([data['C1'],data['click']]).count()
#数据探索
#data['C15'].sketch_summary().frequent_items()
data['C15'].groupby([data['C15']]).count()
#数据探索
#data['C16'].sketch_summary().frequent_items()
data['C16'].groupby([data['C16']]).count()
#实际为分类变量但存储为int, 此处转换为字符串
data['device_type'] = data['device_type'].astype(str)
data['C1'] = data['C1'].astype(str)
data.info()
#训练集与测试集切割
#train_data, test_data = data.random_split(0.8, seed=1)
from sklearn import cross_validation #交叉验证
train_data, test_data = cross_validation.train_test_split(data, test_size=0.3, random_state=0) #模型训练
model_feature='click|device_type|C1|C15|C16'
model_index=['click','device_type','C1','C15','C16']
train_df = train_data.filter(regex=model_feature)
index=model_index
train_df=train_df.reindex_axis(index,axis=1)
train_df.info()from sklearn import linear_model #训练模型
x_train=train_df.as_matrix()[:,1:]
y_train= train_df.as_matrix()[:,0]
clf = linear_model.LogisticRegression(C=1.0, penalty='l1', tol=1e-6)
clf.fit(x_train,y_train)#保存模型
from sklearn.externals import joblib #保存模型
joblib.dump(clf, "train_model.m")#模型权重与偏执项
clf.coef_.T,clf.intercept_[0]#model.predict(test_data, output_type='probability').head(5)
#将模型权重与属性对应
import re
from pandas import Series,DataFrame #数据存储结构
import pandas as pd #数据分析
replace_reg = re.compile(r'\[|\]')
coef_feature=pd.DataFrame({"columns":list(train_df.columns)[1:], "coef":[replace_reg.sub('',str(value)) for value in list(clf.coef_.T)]}) #系数与属性对应
coef_b=Series({ 'columns':'intercept_','coef':str(clf.intercept_[0])})
coef_feature=coef_feature.append(coef_b,ignore_index=True)
coef_feature#预测数据处理
cv_df = test_data.filter(regex=model_feature)
index=model_index
cv_df=cv_df.reindex_axis(index,axis=1)
x_test=cv_df.as_matrix()[:,1:]
y_test=cv_df.as_matrix()[:,0]
x_test,y_test#模型预测
proba=clf.predict_proba(x_test)[:,1]
test_data['proba']=proba
predictions=clf.predict(x_test)
test_data['predictions']= predictions
#test_data['proba'] #预测概率查看#模型评估
from sklearn.metrics import precision_recall_curve, roc_curve, auc #模型效果评估
from sklearn.metrics import classification_report #
precision, recall, thresholds = precision_recall_curve(y_test, test_data['proba'])
precision, recall, thresholds
report = test_data['proba'] > 0.5
#type(y_test[0])
y_test=[int(x) for x in y_test] #lable是字符串型,需要转换为int型
report_result=classification_report(y_test, report, target_names = ['neg', 'pos'])
report_result
3、结果
训练权重
模型评估
kaggle案例:广告点击率预估+LR相关推荐
- Kaggle实战:点击率预估
版权声明:本文出自程世东的知乎,原创文章,转载请注明出处:Kaggle实战--点击率预估. 请安装TensorFlow1.0,Python3.5 项目地址: chengstone/kaggle_cri ...
- 业余草推荐阿里妈妈自研广告点击率预估核心算法MLR
业余草推荐阿里妈妈自研广告点击率预估核心算法MLR. 小编觉得CTR(广告点击率)预估的能力对于广告系统的意义和重要性,类似于在证券市场上预测股价的能力,优秀的CTR预测,通向美好和财富...(以下转 ...
- 计算广告(一)【Ad Click Prediction: a View from the Trenches】工程实践视角下的广告点击率预估
计算广告(一)Ad Click Prediction: a View from the Trenches --工程实践视角下的广告点击率预估 这是谷歌发表于KDD2013的一篇文章,从年份来看,已经有 ...
- 微信公众号广告点击率预估效果优化
[转载]微信公众号广告点击率预估效果优化_腾讯大数据 http://data.qq.com/article?id=2914 1.背景 点击率预估(pCTR)是广告投放过程中的一个重要环节,精准的点击率 ...
- 效果广告点击率预估实践:在线学习
效果广告点击率预估实践:在线学习 原创 2016-03-24 腾讯大数据 腾讯大数据 1.引言 技术钻研如逆水行舟,不进则退.公司的广告业务发展非常迅猛,有目共睹,激烈的外部竞争和客户越来越高的期望, ...
- 对“科大讯飞2021丨广告点击率预估挑战赛 Top1方案(附完整代码)_Jack_Yang的博客-CSDN博客”的补充。
这篇文章的初衷是针对科大讯飞2021丨广告点击率预估挑战赛 Top1方案(附完整代码)_Jack_Yang的博客-CSDN博客进行补充. 博客的信息量很少,对任务背景的介绍也不太对,说实话令人费解.我 ...
- 大规模推荐引擎和广告点击率预估引擎中的TopK计算
转自:https://chuansongme.com/n/2035198 推荐引擎的研究结果成千上万,绝大部分工作都来自于矩阵分解或者类似,在针对用户和Item分别训练出特征向量之后,根据向量内积计算 ...
- 大数据建模之广告点击率预估
一.数据和样本 广告点击率(click through rate,CTR)预估的问题通常被转化为一个分类问题:在给定网民 u(user).广告 i(item).环境 e (environment) 的 ...
- 精准营销:剖析广告点击率预估系统
引文 点击率预估系统最早是由谷歌实现,并应用在其搜索广告系统.在看到这一大杀器为谷歌带来滚滚财源之后,其他公司也纷纷效仿.直到今日,大大小小的"互联网广告公司",都宣称自己掌握了基 ...
最新文章
- lsa五类_OSPF外部路由4类5类LSA
- HighNewTech之5G网络:带你了解5G网络的前世今生—两张长图帮你捋清思路
- leetcode 978. Longest Turbulent Subarray | 978. 最长湍流子数组(Java)
- 1097 Deduplication on a Linked List (25 分)_35行代码AC
- lucene 源码分析_Lucene分析过程指南
- 计算机作文叙事,电脑争夺战叙事作文
- Git(10)-merge
- java使用httpclient封装post请求和get的请求
- 第四章 - 数据运算
- xcode工程间的引用,iOS静态库
- Java基础练习题——查找整数
- 帆软教程:报表数据钻取
- 好用的网页在线客服工具
- XElement.Load 需要释放吗_蚕茧能清洁毛孔吗 蚕茧护肤的正确方法速Get√|蚕茧|清洁-爱美·BEAUTY...
- 火爆业界的明星, 下一代存储技术的先行: NVDIMM (下篇)
- MMDet踩坑与使用体会
- Js实现Flash播放效果[带源码]
- Cly的三角形 (思维+斐波那契)
- 特征匹配中的欧氏距离
- ribbon 远程调用工具(Spring Cloud)
热门文章
- 【逻辑与计算理论】从逻辑到计算的转变之路
- SpringBoot整合腾讯云COS对象存储实现文件上传
- NYU计算机系,NYU的Computer Science and Engineering「纽约大学计算机科学与工程系」
- 第八届蓝桥杯 java B组 日期问题
- (一)双S型速度规划 原理
- dnf锁定计算机,DNF老电脑福音 教你如何提升游戏流畅度
- 声明一个Tree(树)类,有成员ages(树龄),成员函数grow(int years)用以对ages 加上years,showage( )用以显示tree对象的ages值。在主函数中定义Tree类对
- 象棋棋谱xqf工具包 v2.02 绿色
- 【Hexo】Hexo-NexT主题-博客搭建
- 使用python生成微信好友个性签名词云图