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

Python实战:利用Uplift模型识别营销敏感用户提升转化率(一)点击上方蓝字关注我们利用Uplift模型识别营销敏感用户提升转化率上篇…

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

点击上方蓝字关注我们

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

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

                    

                        上篇                              

    1.数据基本情况探索      

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

  3.样本平衡性验证        

             

下篇

1.构建营销增益模型

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

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

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

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  float64
 2  used_discount    64000non-null  int64 
 3  used_bogo        64000non-null  int64 
 4  zip_code         64000non-null  object
 5  is_referral      64000non-null  int64 
 6  channel          64000non-null  object
 7  offer            64000non-null  object
 8  conversion       64000non-null  int64 
dtypes:float64(1), int64(5), object(3)
memoryusage: 4.4+ MB

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

data.describe(include='object').T
                         count                unique             top                     freq
zip_code                64000                  3                 Surburban               28776
channel                 64000                  3                  Web                    28217
offer                   64000                  3                  Buy One Get One        21387
 
forcolumn 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()

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

图1数据相关性探索

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

今天的文章Python实战:利用Uplift模型识别营销敏感用户提升转化率(一)分享到此就结束了,感谢您的阅读,如果确实帮到您,您可以动动手指转发给其他人。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://bianchenghao.cn/28673.html

(0)
编程小号编程小号

相关推荐

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注