-
2019-11-14 17:21:39
投资机构或电商企业等积累的客户交易数据繁杂。需要根据用户的以往消费记录分析出不同用户群体的特征与价值,再针对不同群体提供不同的营销策略。
用户分析指标
根据美国数据库营销研究所Arthur Hughes的研究,客户数据库中有三个神奇的要素,这三个要素构成了数据分析最好的指标
R-最近一次消费(Recency) F-消费频率(Frequency) M-消费金额(Monetary)
通过该图将用户进行分类:
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-月均投资金额
处理数据获取R-F-M
2 训练KMeans模型
先对数据进行转换,然后通过K—Means模型训练,生产模型
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]
更多相关内容 -
使用联合分析法分析客户价值
2020-01-17 06:45:10使用联合分析法分析客户价值,杨彤骥,李玲,想要在企业赢利的前提下更好的满足客户需要就要看公司在那些方面能提供给客户为其感到最有价值的产品及服务。联合分析法被认为是 -
航空公司客户价值分析,航空公司客户价值分析源数据,Python
2021-09-10 16:40:37利用K-means算法对历年航空公司数据进行分析 -
航空公司客户价值分析(附完整代码)
2019-07-22 09:04:59航空公司客户价值分析完整代码 项目背景:为某航空公司需要以客户为中心,按照客户的需求,在对客户的特点了解上使用不同的营销手段,目的是争取更多新客户,降低客户流失率,降低服务成本,提高业务收入,增加ARPU... -
大数据分析技术-航空公司客户价值分析(一).doc
2021-08-21 09:33:54大数据分析技术-航空公司客户价值分析(一) -
SAS SPSS软件的 数据分析与挖掘实战 完整课程PPT课件 第7章 (共37页)实战 实例:航空公司客户价值分析....
2021-08-07 17:46:23广泛用于分析客户价值的是RFM模型,它是通过三个指标(最近消费 时间间隔(Recency)、消费频率(Frequency)、消费金额(Monetary)) 来进行客户细分,舟刊出高价值的客户。如果分析航空公司客户价值 ,此模型不再适用,... -
航空公司客户价值分析_python_评估_
2021-10-02 17:09:43建立合理的客户价值评估模型,对客户进行分群 -
航空公司客户价值分析-数据集
2021-03-14 20:52:24air_data.csv -
航空公司客户价值分析代码与数据集(修改版).zip
2020-01-11 16:39:40经过整理的航空公司客户价值分析代码与数据集,编程语言为Python。代码涉及到数据预处理与建模的各阶段。建模算法采用的是KMeans算法。 -
Python课程设计,选题为航天公司客户价值分析.zip
2021-12-12 21:12:19Python课程设计,选题为航天公司客户价值分析 1.第一簇人群,4654人,最大的特点就是平均折扣率都是最高的,应该是属于乘坐高等舱的商务人员,应该重点保持的对象,也是需要重点发展的对象,另外应该积极采取相关的... -
航空公司客户价值分析案例数据air_data.csv下载
2019-03-28 20:54:12该数据为某航空公司一段时间内有乘机记录的所有客户的形成的历史数据,44个特征,总共62988条记录。 -
python之航空公司客户价值分析 (二)-附件资源
2021-03-05 15:27:45python之航空公司客户价值分析 (二)-附件资源 -
Python:航空公司客户价值分析实战
2018-08-17 13:27:26⑵对不同类的客户类别进行特征分析,比较不同类客户的客户价值;⑶从营销角度讲,客户价值分析实际上是一个市场细分问题,解决市场细分问题比较常用的方法是聚类分析;⑷对不同价值的客户类别提供个性化的服务,并且... -
《航空公司客户价值分析》数据源(第7章).zip
2020-12-19 17:16:12《航空公司客户价值分析》数据源(第7章).zip 详细文章教程如下:https://blog.csdn.net/Gabrielle_OyO/article/details/111406756 免费开源,欢迎补充 -
客户价值分析.ipynb
2021-04-06 20:51:00数据挖掘实战—航空公司客户价值分析 -
航空公司客户价值分析.zip
2020-05-20 10:57:46- 2.[开始数据分析](#2) - [数据探索](#2) - [Part Ⅰ:数据预处理](#2.0) - [数据清洗](#2.1) - [数据集成](#2.2) - [数据归约](#2.3) - [数据变换](#2.4) - [Part Ⅱ:建模分析和性能评估](#... -
RFM 客户价值分析
2021-06-09 21:23:181.背景 市场竞争激烈,从产品中心转化为客户中心。 对客户jing,进行精准营销,实现利润最大化。 建立客户价值评估模型,进行客户分类,是解决问题的办法1.背景及目标
1.1背景
- 市场竞争激烈,从产品中心转化为客户中心。
- 对客户进行区分,进行精准营销,实现利润最大化。
- 建立客户价值评估模型,进行客户分类,是解决问题的办法
1.2目标
- 借助商家客户数据,对客户进行分类。
- 对不同分类的客户进行特征分析,比较不同类客户的客户价值
- 对不同价值的客户类别提供个性化服务,制定相应的营销策略,实现利润的最大化。
2 分析方法
识别客户的价值,使用RFM模型(消费时间间隔(Recency),消费频率(Frequency),消费金额(Monetary))
3数据分析
3.1 数据解读
InvoiceNo:发票编码 StockCode:库存代码 Description:描述 Quantity:数量
InvoiceDate:开票日期 UnitPrice:单价 CustomerID:顾客ID Country:国家
3.2 数据统计分析
3.3 数据处理
去重,删除单价和数量小于0的数据,查看缺失值,统计缺失值所占比例,转换数据格式
删除CustomerID为空的数据,并且添加一列表示总价格Sales
3.4 计算购买频率F和最后一次交易日期M
合并数据并按照总价格降序排列
4 可视化
4.1查看数据大概分布
直方图
直方图显示不适合用中位数分层。所以接下来分类。
5 数据分类
KMeans将用户分为8类,将质心的平均数分别作为划分客户的阈值。
不同类型的客户总数:
不同类型的客户销售份额:
-
论文研究 - 基于价值网络分析法的企业实施客户关系管理的客户策略
2020-05-29 14:54:56为此,首先,公司客户关注他们关注的价值(客户生命周期价值或CLV),然后在公司客户关注的不同部分实现价值链。 通过在企业客户各个部门之间实施价值链,中心可以设计合适的营销计划来管理价值路径,并为每个路径... -
Python实现LRFM模型分析客户价值
2020-05-14 16:03:36现利用KMeans聚类实现LRFM模型来分析客户的价值,便于客户分群,针对性推广,提高销售额。 LRFM模型定义: L:会员创建日期距离距离2014年7月25的时间间隔(单位:月 ) R:会员最近一次购买时间距离2014年7月25的时间...1. 分析背景
这是一份某电商平台的销售数据,数据包含2010年4月22到2014年7月24的销售数据。分析该销售数据,可以发现客户价值。
现利用KMeans聚类实现LRFM模型来分析客户的价值,便于客户分群,针对性推广,提高销售额。
LRFM模型定义:
L:会员创建日期距离距离2014年7月25的时间间隔(单位:月 )
R:会员最近一次购买时间距离2014年7月25的时间间隔(单位:月 )
F:会员购买次数
M:会员的总购买金额2. 分析流程
3. 数据探索
3.1 导入相关包和读取数据
import numpy as np import pandas as pd import matplotlib.pyplot as plt from sklearn import preprocessing from datetime import datetime from sklearn.cluster import KMeans plt.rcParams['font.sans-serif'] = 'SimHei' %matplotlib inline # 读取数据 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] for col in data1.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(lambda x: round(x.days/30,3)) data1['R'] = data1['R'].apply(lambda x: 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_
输出:
将结果转成DataFrameclient_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大,这里判断是重要保持客户。 -
数据分析案例-航空公司客户价值分析(聚类)
2022-05-10 23:28:59目录 项目背景 原始数据情况 挖掘目标 分析方法与过程 ...在企业的客户关系管理中,对客户分类,区分不同价值的客户。针对不同价值的客户提供个性化服务...广泛用于分析客户价值的是RFM模型,它是通过三个指标(..目录
项目背景
在企业的客户关系管理中,对客户分类,区分不同价值的客户。针对不同价值的客户提供个性化服务方案,采取不同营销策略,将有限营销资源集中于高价值客户,实现企业利润最大化目标。在竞争激烈的航空市场里,很多航空公司都推出了优惠的营销方式来吸引更多的客户。在此种环境下,如何将公司有限的资源充分利用,提示企业竞争力,为企业带来更多的利益。
广泛用于分析客户价值的是RFM模型,它是通过三个指标(最近消费时间间隔(Recency)、消费频率(Frequency)、消费金额(Monetary))来进行客户细分,识别出高价值的客户。如果分析航空公司客户价值,此模型不再适用,存在一些缺陷和不足:
一:在模型中,消费金额表示在一段时间内,客业产品金额的总和。因航空票价受到运输距离、舱位等级等多种因素影响,同样消费金额的不同旅客对航空公司的价值是不同的。因此这个指标并不适合用于航空公司的客户价值分析。
二:传统模型分析是利用属性分箱方法进行分析如图,但是此方法细分的客户群太多,需要一一识别客户特征和行为,提高了针对性营销的成本。
原始数据情况
挖掘目标
1. 借助航空公司客户数据,对客户进行分类;2. 对不同的客户类别进行特征分析,比较不同类客户的客户价值;3. 对不同价值的客户类别提供个性化服务,制定相应的营销策略。分析方法与过程
初步分析:提出适用航空公司的LRFMC模型
因消费金额指标在航空公司中不适用,故选择客户在一定时间内累积的飞行里程M 和客户乘坐舱位折扣系数的平均值 C 两个指标代替消费金额。此外,考虑航空公司会员加入时间在一定程度上能够影响客户价值,所以在模型中增加客户关系长度 L ,作为区分客户的另一指标,因此构建出 LRFMC 模型。采用聚类的方法对客户进行细分,并分析每个客户群的特征,识别其客户价值总体流程:加载数据
# 导包 import numpy as np import pandas as pd import matplotlib.pyplot as plt from sklearn.cluster import KMeans from sklearn import preprocessing import warnings warnings.filterwarnings('ignore') # 忽略警告 plt.rcParams['font.sans-serif'] = ['SimHei'] #解决中文显示 plt.rcParams['axes.unicode_minus'] = False #解决符号无法显示 data = pd.read_csv('air_data.csv', sep=',') data.shape
(62988, 44)
数据预处理
1. 数据清洗:从业务以及建模的相关需要方面考虑,筛选出需要的数据a) 丢弃票价为空的数据。b) 丢弃票价为 0 、平均折扣率不为 0 、总飞行公里数大于 0 的数据。# 删除缺失值 data = data.dropna().reset_index(drop=True) data.shape
(58255, 44)
# 删除票价为0、平均折扣率不为0、总飞行公里数大于0的数据 t1 = data['SUM_YR_1']==0 t2 = data['SUM_YR_2']==0 t3 = data['avg_discount']>0 t4 = data['SEG_KM_SUM']>0 tt = [] for f in range(len(t1)): if t1[f] & t2[f] & t3[f] & t4[f]==True : tt.append(f) data = data.drop(tt,axis=0) data = data.reset_index(drop = True) data.shape
(58022, 44)
2. 属性规约:原始数据中属性太多,根据 LRFMC 模型,选择与其相关的六个属性,删除不相关、弱相关或冗余的属性。# 取出我们要分析的列数据 data1 = data[['LOAD_TIME','FFP_DATE','LAST_TO_END','FLIGHT_COUNT','SEG_KM_SUM','avg_discount']] data1
3. 数据变换a) 属性构造b) 数据标准化L = LOAD_TIME - FFP_DATE
会员入会时间距观测窗口结束的月数 = 观测窗口的结束时间 - 入会时间[单位:月
R = LAST_TO_END
客户最近一次乘坐公司飞机距观测窗口结束的月数 = 最后一次乘机时间至观察窗口末端时长[单位:月]
F = FLIGHT_COUNT
客户在观测窗口内乘坐公司飞机的次数 = 观测窗口的飞行次数[单位:次]
M = SEG_KM_SUM
客户在观测时间内在公司累计的飞行里程 = 观测窗口总飞行公里数[单位:公里]
C = AVG_DISCOUNT
客户在观测时间内乘坐舱位所对应的折扣系数的平均值 = 平均折扣率[单位:无]
# 会员入会时间距观测窗口结束的月数 = 观测窗口的结束时间 - 入会时间 m = (pd.to_datetime(data1['LOAD_TIME'])-pd.to_datetime(data1['FFP_DATE']))//30 data1['L']=m.dt.days # 再取出我们最终模型需要的列数据 data2 = data1[['L','LAST_TO_END','FLIGHT_COUNT','SEG_KM_SUM','avg_discount']] # 更换列名 data2 = data2.rename(columns={'L': 'ZL', 'LAST_TO_END': 'ZR','FLIGHT_COUNT':'ZF','SEG_KM_SUM':'ZM','avg_discount':'ZC'})
标准化处理
# 标准化处理 std_scale = preprocessing.StandardScaler().fit(data2[["ZL","ZR","ZF","ZM","ZC"]]) df_std = std_scale.transform(data2[["ZL","ZR","ZF","ZM","ZC"]]) df_data=pd.DataFrame(df_std) df_data.columns=list(data2.columns) df_data
构建模型
1. 构建航空客户价值分析模型a) 客户 K-Means 聚类b) 客户价值分析c) 模型应用类别
ZL
ZR
ZF
ZM
ZC
类别数目
0
-0.082462
0.009038
-0.268082
-0.289714
1.903063
5032
1
0.514653
-0.796162
2.48131
2.42854
0.3318
5023
2
-0.690163
-0.418629
-0.158749
-0.155184
-0.298378
22570
3
1.186869
-0.374691
-0.080945
-0.086677
-0.14956
14373
4
-0.330789
1.704202
-0.577257
-0.543217
-0.210726
11024
1. 客户 K-Means 聚类采用K-Means聚类算法对客户数据进行分群,将其聚成五类(需要结合业务的理解与分析来确定客户的类别数量)。
# 聚类 model = KMeans(n_clusters=5) # 构造聚类器 model.fit(df_std) # 聚类 label_pred = model.labels_ # 获取聚类标签 r1 = pd.Series(model.labels_).value_counts() # 统计各类的个数 r2 = pd.DataFrame(model.cluster_centers_) # 获取聚类中心 r = pd.concat([r2,r1],axis=1) # 合并 r.columns = list(data2.columns) + ['类别数目'] # 加上列名 r
r3 = pd.concat([df_data,pd.Series(model.labels_,index=df_data.index)],axis=1) # 给df_data加上一列按照df_data索引,标签为值值的列 r3.columns = list(data2.columns) + ['聚类类别'] # 加列名 r3
2. 客户价值分析# 根据r2绘制雷达图 labels = np.array(['ZL','ZR','ZF','ZM','ZC']) labels = np.concatenate((labels,[labels[0]])) N = len(r2) angles = np.linspace(0, 2 * np.pi, N, endpoint=False) data = pd.concat([r2,r2.loc[:,0]],axis=1) angles = np.concatenate((angles, [angles[0]])) fig = plt.figure(figsize=(8,8)) ax = fig.add_subplot(111, polar=True) # 参数polar, 以极坐标的形式绘制图形 # 画线 j=0 for i in range(0,5): j=i+1 ax.plot(angles,data.loc[i,:],'o-',label="客户群"+str(j)) # 添加属性标签 ax.set_thetagrids(angles*180/np.pi,labels) plt.title(u'客户特征雷达图') plt.legend(loc='lower right') plt.show()
对聚类结果进行特征分析,其中客户群3在F、M属性最大,在R属性最小;客户群5在L属性上最大;客户群4在R属性上最大,在F、M属性最小;客户群1在L、C属性上最小;客户群2在C属性上最大。
根据业务定义五个等级的客户类别:重要保持客户、重要发展客户、重要挽留客户、一般客户、低价值客户。
客户群价值排名:根据每种客户类型的特征,对各类客户群行客户价值排名,获取高价值客户信息。
客户群
排名
排名意义
客户群3
1
重要保持客户
客户群5
2
重要发展客户
客户群2
3
重要挽留客户
客户群1
4
一般客户
客户群4
5
低价值客户
3. 模型应用:根据各个客户群的特征,可采取一些营销手段和策略。a) 会员的升级与保级。b) 首次兑换。c) 交叉销售。 -
客户价值分析模型
2017-03-15 17:20:10比较有借鉴意义的客户价值分析模型,数学基础不好的慎下,通过数据对用户需求进行分析、推倒、得到最终结果,如何描述客户行为,过程性非常强,简单易懂。 没有数学基础的不要下载,如果你连贝叶斯算法都不懂,就... -
基于数据挖掘的航空公司客户价值分析.pdf
2021-07-14 14:41:48基于数据挖掘的航空公司客户价值分析.pdf -
企业架构-使用价值流分析找到价值所在
2021-02-27 05:58:37价值流图是可以保证改进的活动是顾客真正需要的,我们可以按照价值流图析方法选择一个产品,绘制现状图,然后按照EVC多个层次来建模,再按照价值链分析来找出价值点和更改项。我也只是最近才思考这个问题,所以希望... -
大数据分析技术-航空公司客户价值分析(二)
2021-11-22 15:27:47大数据分析技术-航空公司客户价值分析(二) 1.复习如何使用python选取构建LRFMC模型需要的特征 2.使用sklearn相关功能模块标准化LRFMC模型的特征 3.使用sklearn的cluster模块提供的kmeans函数对不同客户群体LRMFC... -
利用Python分析航空公司客户价值
2020-01-11 16:19:40利用Python分析航空公司客户价值 一、背景介绍 随着社会生活中数据量的急剧增多,如何从这些海量的数据中提取与发掘出对我们决策有用的信息成为当前亟待解决的题,因此,数据分析与挖掘技术在这些年得到了广泛的... -
2020花西子品牌价值分析报告.pptx
2021-04-22 03:30:202020花西子品牌价值分析报告 -
统计分析法在电信客户价值分析中的应用.doc
2021-01-20 15:58:26统计分析法在电信客户价值分析中的应用.doc -
航空公司客户价值分析Python源码.rar
2022-06-01 19:39:32航空公司客户价值分析Python源码 -
航空公司客户价值分析.rar
2019-05-30 21:24:26与本人博客https://blog.csdn.net/sinat_38068807/article/details/90703685配套使用,这个压缩包里面有数据分析所用数据源,分析需求文档以及本人编写的代码 -
关于K-means算法在航空公司客户价值分析
2020-01-02 16:56:09文档,数据,以及代码应有尽有!解压即可使用,code直接丢到spyder里面,如果不想改路径就想使用,直接解压到桌面上面运行。文档和代码以及数据均是网络上的综合之后,根据本人经验进行修改。