Python实现LRFM模型分析客户价值沮授字什么

作者:Dake1. 分析背景 这是一份某电商平台的销售数据,数据包含2010年4月22到2014年7月24的销售数据。分析该销售数据,可以发现客户价值。现利用KMeans聚类实现LRFM模型来分析客户

作者:Dake

1. 分析背景

这是一份某电商平台的销售数据,数据包含2010年4月22到2014年7月24的销售数据。分析该销售数据,可以发现客户价值。

现利用KMeans聚类实现LRFM模型来分析客户的价值,便于客户分群,针对性推广,提高销售额。

LRFM模型定义:

  • L:会员创建日期距离距离2014年7月25的时间间隔(单位:月 )

  • R:会员最近一次购买时间距离2014年7月25的时间间隔(单位:月 )

  • F:会员购买次数

  • M:会员的总购买金额

2. 分析流程
3. 数据探索 3.1 导入相关包和读取数据

importnumpyasnp
importpandasaspd
importmatplotlib.pyplotasplt
fromsklearnimportpreprocessing
fromdatetimeimportdatetime
fromsklearn.clusterimportKMeans

plt.rcParams['font.sans-serif']='SimHei'
%matplotlibinline

#读取数据
df=pd.read_csv(r'C:/Users/Administrator/Desktop/RFM分析1.csv',
engine='python')
#查看行列
df.shape

输出:

3.2 查看表结构

从图可以看出这里的数据只有class2有缺失值,这里暂时不用提取这个指标,暂不清洗。


3.3 描述性分析查看

这里销售金额为负数的情况,数据清洗的时候得把这些异常值过滤。


4. 数据清洗 4.1 将销售额<0的过滤掉

#销售金额有小于等于0的,直接过滤掉
#这里有22542条数据
data=df[df['销售金额']>0]
data.shape

输出:

4.2 会员创建日期、销售日期转换成datetime格式

data['会员创建日期']=pd.to_datetime(data['会员创建日期'])
data['销售日期']=pd.to_datetime(data['销售日期'])

#查看是否转换成功
data.info()

输出:

5. 构建L、R、F、M指标 5.1 提取有用指标
  • L = 相对日期(这里我指定:2014年7月25) - 会员创建日期

  • R = 相对日期(这里我指定:2014年7月25) - 最晚(大)的销售日期

  • F = 用户购买的次数(这里针对流水号进行计数不同)

  • M = 用户购买的汇总金额
    代买实现:

#计算L,再转换成月,这里转换成月,直接除于30天,保留两位小数
#L是最早的购买日期距离会员创建日期
data1=data.groupby('UseId').agg({'会员创建日期':['min'],
'销售日期':['min','max'],
'销售金额':['sum'],
'流水号':['nunique']})
data1

输出:


删除一层列名,并重新进行命名:

#删除第一层的列名
data1.columns=[col[1]forcolindata1.columns]
#重新命名列名
data1.columns=['会员创建日期','最早销售日期','最晚销售日期','M','F']
data1

输出:


M、F指标已经构建完成。5.2 购买L、R指标

#先计算L,R,再转化成单位月
data1['L']=datetime.strptime('2014-7-25','%Y-%m-%d')-data1['会员创建日期']
data1['R']=datetime.strptime('2014-7-25','%Y-%m-%d')-data1['最晚销售日期']

#将L、R转换成月做为单位
data1['L']=data1['L'].apply(lambdax:round(x.days/30,3))
data1['R']=data1['R'].apply(lambdax:round(x.days/30,3))
data1

输出结果:


提取有用的指标:

LRFM_data=data1[['L','R','F','M']]
6. 进行L、R、F、M数据的Z-Score转换

ss=preprocessing.StandardScaler()
ss_LRFM_data=ss.fit_transform(LRFM_data)
ss_LRFM_data

输出:

7. 使用KMeans进行聚类分析

#n_clusters聚类的个数
kmodel=KMeans(n_clusters=5,n_jobs=4)
kmodel.fit(ss_LRFM_data)
#查看聚类中心
kmodel.cluster_centers_

输出:


将结果转成Dataframe

client_level=pd.Dataframe(kmodel.cluster_centers_,
index=['客户群1','客户群2','客户群3','客户群4','客户群5'],
columns=['L','R','F','M'])
client_level

输出:

8. 针对结果进行客户群的分类
  • L越大,代表注册会员时间距离指定时间(2014年7月25)越长,代表老客户,该指标越大越好。

  • R越小,代表购买时间距离指定时间(2014年7月25)越短,R越小越好。

  • F越大,代表会员的购买次数越多。

  • M越大,代表会员购买的金额越多。

客户群1分析:
L大,R小,F大,M较大,这里判断是重要发展客户。

客户群2分析:
L大,R大,F小,M较小,这里判断是重要挽留客户。

客户群3分析:
L小,R小,F小,M小,这里判断是低价值客户。

客户群4分析:
L大,R大,F小,M小,这里判断是一般价值客户。

客户群5分析:
L大,R小,F大,M大,这里判断是重要保持客户。


猜你喜欢:
数据分析实战:母婴商品分析

《吊打分析师》实战—我要租个好房

简单的Excel数据分析案例

为什么要学统计学:**的统计学

成为数据分析师的第三年,我写了10W字

@ 号主:可乐
@ 公众号/知乎专栏/头条/简书:可乐的数据分析之路
@ 个人微信:data_cola


原文链接:http://www.wanshiruyi.cc/news/3289.html,转载和复制请保留此链接。
以上就是关于Python实现LRFM模型分析客户价值沮授字什么全部的内容,关注我们,带您了解更多相关内容。

特别提示:本信息由相关用户自行提供,真实性未证实,仅供参考。请谨慎采用,风险自负。



上一篇:龙年贺岁片,堪称“神仙打架”!能量保护罩

下一篇:yyds,数据分析赋能销售的最佳方案来了爱情公寓主题曲是什么

相关推荐