客户关系管理

Python使用RMF聚类分析客户价值

2019-11-14  本文已影响0人  Python数据分析实战

投资机构或电商企业等积累的客户交易数据繁杂。需要根据用户的以往消费记录分析出不同用户群体的特征与价值,再针对不同群体提供不同的营销策略。

用户分析指标

根据美国数据库营销研究所Arthur Hughes的研究,客户数据库中有三个神奇的要素,这三个要素构成了数据分析最好的指标

R-最近一次消费(Recency)
F-消费频率(Frequency)
M-消费金额(Monetary)
image

通过该图将用户进行分类:

R、F、M都很高,重要价值客户(VIP客户)
F、M很高,R不高,重要保持客户
R、F、M都很低,流失客户
M很高,R、F不高,重要挽留客户

根据这8个类别的R、F、M指标,对用户进行标注,哪些是重要价值客户,哪些是重要保持客户,哪些是重要发展客户,哪些是流失客户等

流程介绍

以R、F、M这三个核心指标为维度进行聚类分析
利用K-means聚类分析将用户分类
根据R、F、M指标,对用户进行标注

准备工作:
数据
某电商企业客户近期购买的数据。包含客户注册日期,最后购买日期以及购买消费总金额

参数:

R-求出最近一次投资时间距提数日天数
F-月均投资次数
M-月均投资金额

目标:分析客户交易数据,用户群体的特征与价值,进行精准营销,降低营销成本,提高销售业绩。

1 分析数据获取RFM

R-求出最近一次投资时间距提数日天数

确定一个提现日,减去用户的最新投资日期

F-月均投资次数

总投资次数/总月数

M-月均投资金额

投资总金额/总月数
image

处理数据获取R-F-M

image.png

2 训练KMeans模型

先对数据进行转换,然后通过K—Means模型训练,生产模型


image.png

3 通过模型对用户标注


image.png image.png

通过模型对新用户标注

1、获取新用户数据
2、通过和原数据处理获取RFM
3、通过训练模型得出用户类型


def user_classes(cdata, user_info):
'''
# 模拟一条用户数据
1、获取当前时间表示为截止时间
2.计算出: R F M
'''
  R, M, F = user_info_change(user_info)
  user_data_info = DataFrame([[R], [F], [M]]).T
  print(user_data_info)

  # user_data_info = DataFrame([[12.5], [18.0], [20000.0]]).T
  user_data_info.index = ["lily"]
  user_data_info.columns = cdata.columns
  print("cdata_info:\n", user_data_info)

  new_zcdata = (user_data_info-cdata.mean())/cdata.std()
  print("new_zcdata", new_zcdata)

  kModel = load_model("user_classes.pkl")
  ret = kModel.predict(new_zcdata)
  print("new_zcdata_ret:", ret)
  # new_zcdata_ret: [3]
Python小学僧
上一篇下一篇

猜你喜欢

热点阅读