uplift model学习笔记
一、解决的问题:
通常的 Propensity Model 和 Response Model 只是给目标用户打了个分,并没有确保模型的结果可以使得活动的提升最大化;它没有告诉市场营销人员,哪个用户最有可能提升活动响应;
因此,需要另外一个统计模型,用来定向那些可以被营销推广活动明显驱动他们偏好响应的用户,也就是“营销敏感”用户;
Uplift Model的最终目标就是找到最有可能被营销活动影响的用户,从而提升活动的反响(r(test)-r(control))、提升ROI、提升整体的市场响应率;
因此,模型要避免推广预算花在
(一)从购买者角度来看:
(1)自然反应的用户(即不需要营销也会来的用户);(2)顽固不会响应的用户;
(二)从流失者的角度来说:
(1)肯定的用户;
(2)因为进行了市场推广反而流失的用户;
(3)没有意识到是否有这个活动会有什么影响的用户;(即营销不敏感的用户)
二、什么是uplift model ?
直接为treatment所带来的影响提升建模;
三、如何进行uplift modeling?(差分响应)
方法(一):
1、建立两个logistic模型
Logit(Ptest(response|X,treatment =1)) = a+ b*X +c*treatment
Logit(Pcontrol(response|X,treatment=0) ) = a + b*X
2、将两个得分相减,计算uplift score
Score = Ptest(response|X,treatment =1) - Pcontrol(response|X,treatment =0)
方法(二):
只用一个模型,但是建立两个同样的;
1、Logit(P(reponse|X) = a + b*X + c*treatment + d* treatment *X
2、将两个得分相减得到uplift score
Score = P(response|X,treatment =1) - P(response|X,treatment =0)
方法(三):
knn modeling
方法(四):
Naive Bayes
四、uplift model使用过程中需要注意的问题:
1、训练样本
由于强化学习需要用到的是反馈数据,因此训练样本的及时及自动更新会是比较重要的方面(尤其是label的更新和实时特征的更新),才能体现出来强化学习优于机器学习的地方,使用用户反馈的标注样本来更新训练样本库,可以使得反馈及时地得到学习,从而优化算法效果;
2、label设计问题
3、问题定义
uplift的点与运营活动指标完美结合
4、冷启动策略问题
5、抽样训练时样本有偏的问题
总结:
"Where traditional predictive modeling focuses on the outcome, uplift modeling focuses on the effectiveness of the treatment.Then, you can target resources on the cases that are likely to be positively impacted by the treatment."
Uplift Model 的精髓是,它专注于作用之后效果的提升,因此区分出“营销/核销敏感人群”这一步特别重要,也是筛选特征的重要考虑方面;它对ROI结果的优化,不是在于模型设计的复杂,而是在于将ROI的思维策略融入到了模型当中。
但是其实ROI并不仅仅是提升核销率,从长远的营销价值来说,ROI最优化还需要考虑用户的终身价值,也就是对用户所投入的每一分钱,是否对该用户长远来看给企业带来的价值是最大化的。
Uplift Model对正负样本的定义就是,with treatment 和 without treatment的时候,是否具有response。
上图就是uplift model的建模假设矩阵。
uplift model学习笔记的更多相关文章
- ExtJs Ext.data.Model 学习笔记
Using a Proxy Ext.define('User', { extend: 'Ext.data.Model', fields: ['id', 'name', 'email'], proxy: ...
- Django2.2 数据库的模块model学习笔记
一.前言 为什么选用Django2.2,因为从2019年下半年起Django2.2逐渐成为长期支持版本,官网也有数据,所以当然选用维护时间长的版本 二.models的建立 Django的models也 ...
- (转)Qt Model/View 学习笔记 (七)——Delegate类
Qt Model/View 学习笔记 (七) Delegate 类 概念 与MVC模式不同,model/view结构没有用于与用户交互的完全独立的组件.一般来讲, view负责把数据展示 给用户,也 ...
- (转)Qt Model/View 学习笔记 (五)——View 类
Qt Model/View 学习笔记 (五) View 类 概念 在model/view架构中,view从model中获得数据项然后显示给用户.数据显示的方式不必与model提供的表示方式相同,可以与 ...
- Django学习笔记(三)—— 型号 model
疯狂暑期学习 Django学习笔记(三)-- 型号 model 參考:<The Django Book> 第5章 1.setting.py 配置 DATABASES = { 'defaul ...
- 学习笔记之Model selection and evaluation
学习笔记之scikit-learn - 浩然119 - 博客园 https://www.cnblogs.com/pegasus923/p/9997485.html 3. Model selection ...
- AngularJs学习笔记--Understanding the Model Component
原版地址:http://docs.angularjs.org/guide/dev_guide.mvc.understanding_model 在angular文档讨论的上下文中,术语“model”可以 ...
- [学习笔记] Uplift Decision Tree With KL Divergence
Uplift Decision Tree With KL Divergence Intro Uplift model 我没找到一个合适的翻译,这方法主要应用是,探究用户在给予一定激励之后的表现,也就是 ...
- maven权威指南学习笔记(三)——一个简单的maven项目
目标: 对构建生命周期 (build lifecycle),Maven仓库 (repositories),依赖管理 (dependency management)和项目对象模型 (Project O ...
随机推荐
- ICSharpCode.SharpZipLi 压缩、解压文件 附源码
http://www.icsharpcode.net/opensource/sharpziplib/ 有SharpZiplib的最新版本,本文使用的版本为0.86.0.518,支持Zip, GZip, ...
- java调用7zip解压压缩包
前言 最近的项目中需要用到解压缩包的功能,客户给出的压缩包的格式主要是rar和zip,因此就打算使用java调用7zip的命令行进行解压文件,本文主要记录一下实现的过程以及其中遇到的问题. 7zip命 ...
- 从今天开始学习Swift -- Swift 初见 (转)
原文地址:http://www.cocoachina.com/newbie/basic/2014/0604/8675.html Swift系列文章由CocoaChina翻译小组翻译自苹果的官方文档 ...
- JavaScript Hacks
JavaScript Hacks,很多都是在网上看到的,觉得好就记下来了.在这里给大家推荐一个项目,里面很多代码片段都值得学习https://github.com/Chalarangelo/30-se ...
- SublimeText插件 : sass语法高亮
安装 :sublime中安装sass插件和sass build插件 就可以高亮显示sass 步骤:安装 sass插件和sass build (安装过程不细说) 步骤2:打开.sass文件,进行以下设 ...
- CommonJS 的实现原理
CommonJS 使用 Node.js 的四个环境变量moduleexportsrequireglobal 只要能够提供这四个变量,浏览器就能加载 CommonJS 模块. Browserify 是目 ...
- 海量数据去重之SimHash算法简介和应用
SimHash是什么 SimHash是Google在2007年发表的论文<Detecting Near-Duplicates for Web Crawling >中提到的一种指纹生成算法或 ...
- open ssh 常用的东西
清除已经存在的但是不同设备的连接信息 ssh-keygen -f "/users/he/.ssh/known_hosts" -R 192.168.1.118 无密码登录openss ...
- Azure:陪伴你们,是我最长情的告白
立即访问http://market.azure.cn
- 如何在js中获取到服务器端控件并给其赋值
如下所示:lbID为服务器端控件ID document.getElementById('<%=lbID.ClientID%>').value = "赋值";