点击上方蓝字关注我们

利用Uplift模型识别营销敏感用户提升转化率     

上篇 

1.数据基本情况探索

2.数据预处理及相关性分析

3.样本平衡性验证

下篇

1.构建营销增益模型

2.营销增益模型效果评价

营销增益模型(Uplift)是用户转化分析中常用的模型,今天的文章基于营销数据利用Python进行实战识别营销敏感客户群体,以在实际营销活动中降低企业成本。

1

数据基本情况探索 

营销数据集来源于Kaggle,该数据集收集了64000名客户在不同营销推广活动中的数据。营销活动包括两大类别,分别是“打折”活动以及“买一送一”活动,在数据集中对应的字段分别是“used_discount”和“used_bogo”,数据集记录了两类活动是否触达客户(“offer”字段)以及客户是否转化(“conversion”)等信息。

首先,通过如下代码,导入分析所需的包,读入相关数据并且查看数据集前五行数据。

import pandas as pd
import numpy as np
importmatplotlib.pyplot as plt
import seaborn as sns
data=pd.read_csv('data.csv')
data.head()recency  history used_discount used_bogo      zip_code         is_referral     channel         offer            conversion
10        142.44     1               0          Surburban          0            Phone        Buy One Get One         0
6         329.08     1               1          Rural              1            Web         No Offer                 0
7         180.65     0               1          Surburban          1            Web         Buy One Get One          0
9         675.83     1               0          Rural              1            Web         Discount                 0

在正式建立模型之前,对于数据基本情况的探索是必不可少的。通过如下代码查看各个字段是否存在空值及其字段类型。

data.info()
<class'pandas.core.frame.DataFrame'>
RangeIndex:64000 entries, 0 to 63999
Datacolumns (total 9 columns):#  Column         Non-Null Count  Dtype
---  ------        --------------  ----- 0  recency          64000non-null  int64 1  history          64000non-null  float642  used_discount    64000non-null  int64 3  used_bogo        64000non-null  int64 4  zip_code         64000non-null  object5  is_referral      64000non-null  int64 6  channel          64000non-null  object7  offer            64000non-null  object8  conversion       64000non-null  int64
dtypes:float64(1), int64(5), object(3)
memoryusage: 4.4+ MB

对于分类型变量,数据分析师需要通过如下代码查看有多少种分类类型以及其类型所代表的意义。结果显示,用户购买渠道包括手机、网页以及其他多类渠道,营销方式包括打折、买一送一以及无营销活动。

data.describe(include='object').Tcount                unique             top                     freq
zip_code                64000                  3                 Surburban               28776
channel                 64000                  3                  Web                    28217
offer                   64000                  3                  Buy One Get One        21387forcolumn in data.drop(['recency','history'], axis=1).columns:
print(column,'-',data[column].unique())used_discount - [1 0]
used_bogo - [0 1]
zip_code - ['Surburban' 'Rural' 'Urban']
is_referral - [0 1]
channel - ['Phone' 'Web' 'Multichannel']
offer - ['Buy One Get One' 'No Offer' 'Discount']
conversion - [0 1]

2

数据预处理及相关性分析 

通过第一部分的分析,我们知道数据质量良好,不存在缺失数据。为了是数据符合营销增益模型的输入形式,此处需要对数据进行适当的预处理。

数据集中营销方式有三类,但其都是文本格式,不利于模型的分类,所以此处需要转换分类标识以方便输入模型,实现代码如下。

df_model= data.rename(columns={'conversion': 'target'})
df_model= df_model.rename(columns={'offer': 'treatment'})
df_model.treatment= df_model.treatment.map({'No Offer': 0, 'Buy One Get One': -1, 'Discount': 1})

完成分类标识转换之后,我们对数据相关性进行探索,初步了解营销用户转化的因素,实现代码如下。

df_model= pd.get_dummies(df_model)
fig =plt.figure(figsize=(15,12),dpi= 300)
ax =sns.heatmap(df_model.corr(), cmap="YlGnBu",linecolor='black', lw=.65,annot=True,alpha=.95)
ax.set_xticklabels([xfor x in df_model.columns])
ax.set_yticklabels([yfor y in df_model.columns])
plt.show()

图1数据相关性探索

数据相关性结果如图1所示,无论是“买一送一”还是“打折促销”营销方式,都与用户转化相关性较弱。

Python实战:利用Uplift模型识别营销敏感用户提升转化率(一)相关推荐

  1. 廖雪峰python.pdf-74 利用map()函数,把用户输入的不规范的英文名字,变为首字母大写,其他小写的规范名字。

    练习 利用map()函数,把用户输入的不规范的英文名字,变为首字母大写,其他小写的规范名字.输入:['adam', 'LISA','barT'],输出:['Adam', 'Lisa', 'Bart'] ...

  2. 【Python】利用map()函数,把用户输入的不规范的英文名字,变为首字母大写,其他小写的规范名字

    微信公众号 题目来源:[廖雪峰的官方网站-map/reduce] 利用map()函数,把用户输入的不规范的英文名字,变为首字母大写,其他小写的规范名字.输入:['adam', 'LISA', 'bar ...

  3. python实战教程:7万网站用户行为大数据的分析

    今天的教程有点长,耐心点看完,你会有收获的.基础薄弱的伙伴,不清楚的可以留言,要视频学习教程的,可以留言! 7万网站用户行为大数据分析 数据分析师,是通过数据对业务团队决策.公司管理层的决策进行&qu ...

  4. python实战|利用openpyxl制作订单统计报表

    刚开始学习openpyxl,试下利用openpyxl制作平时常用的统计报表,发现功能还是挺实用的,对包不熟悉,代码应该还有很多优化的空间,好几个循环都应该可以优化下,增加可读性~  最终试验做成的报表 ...

  5. Python实战 -- 利用Flask搭建微电影网站(一)蓝图构建

    https://www.bilibili.com/video/av51720348?p=5

  6. python画图代码-Python实战小程序利用matplotlib模块画图代码分享

    Python中的数据可视化 matplotlib 是python最著名的绘图库,它提供了一整套和matlab相似的命令API,十分适合交互式地进行制图.而且也可以方便地将它作为绘图控件. 实战小程序: ...

  7. 用python画图代码-Python实战小程序利用matplotlib模块画图代码分享

    Python中的数据可视化 matplotlib 是python最著名的绘图库,它提供了一整套和matlab相似的命令API,十分适合交互式地进行制图.而且也可以方便地将它作为绘图控件. 实战小程序: ...

  8. Python实战之网络与爬虫篇-----如何查看用户Star了哪些库

    Python实战之网络与爬虫篇-----如何查看用户Star了哪些库 1.问题求解 试着用前面所学的知识查看用户Codingchaozhang 都Starred了哪些库,并且自动在游览器中打开这些库的 ...

  9. python利用map()函数,把用户输入的不规范的英文名字,变为首字母大写,其他小写的规范名字

    利用map()函数,把用户输入的不规范的英文名字,变为首字母大写,其他小写的规范名字.输入:['adam', 'LISA', 'barT'],输出:['Adam', 'Lisa', 'Bart']: ...

  10. python实战-实现内网CAS统一认证登录

    CAS(Central Authentication Service)集中式认证服务是一种广泛应用的单点登录协议,特别是在校园网和企业内网,它允许用户只需向认证服务器提供一次凭证,即可以访问多个应用系 ...

最新文章

  1. 2022年想成为软件测试工程师,这个学习路线收藏起来
  2. 提交响应后无法调用sendredirect_微服务的那些事(三),微服务的远程调用方式。RPC和HTTP...
  3. 广文艺计算机综合美术,广东文艺职业学院2018年第二批合同制人员招聘专业技能考核和试讲题目...
  4. air java,Java Bean
  5. 【LeetCode - 443】压缩字符串(模拟)
  6. NVIDIA Physix Unity3D
  7. 导航器 Navigator
  8. leetcode - 56. 合并区间
  9. Oracle常用存储过程写法
  10. android连接程序,android程序如何连接真机进行测试
  11. 安装时间大于30秒_高送转第一股秒板,封单金额近百亿!最新高送转潜力股名单曝光...
  12. 传智播客java基础入门pdf
  13. bodymovin输出Json动画为黑白的解决方案
  14. 大话设计模式之爱你一万年:第一章 设计模式基本概念:1.软件设计模式概述
  15. 实践三 网络嗅探与协议分析
  16. 程序员:新手到专家的5个阶段
  17. dubbo服务出现大量超时问题
  18. Heka采集系统Output插件开发
  19. echarts折线图鼠标移入页面出现抖动
  20. 【文件上传】——文件上传后需要重启服务器方可访问到异常

热门文章

  1. python3获取天气预报
  2. 电脑xlsx文件格式打不开怎么办
  3. 利用公式给 Excel 单元格设置条件格式 - 以日期中的月份为例
  4. linux 根目录 777,Linux误操作777之后的恢复方法
  5. Mermaid制作甘特图
  6. python习题20190130
  7. 非香农类信息不等式_信息论
  8. matlab点类型,Matlab中的类(Class)
  9. win10系统计算机如何加密,win10系统自带加密使用的设置方法
  10. 我科学家研制“龙虾壳”新型仿生材料