RFM 客户价值分析

背景:电商企业沉积的客户交易数据繁杂。需要挖掘出不同用户群体的特征与价值,再针对不同群体提供不同的营销策略。
数据:某电商企业客户近期购买的数据。包含客户基本信息,商品信息,交易记录。
目标:分析客户交易数据,挖掘出高价值客户,进行精准营销,降低营销成本。


【一】分析思路

RFM模型:是一种衡量客户价值和客户创利能力的重要工具和手段。该机械模型通过一个客户的近期购买行为、购买的总体频率以及花了多少钱三项指标来描述该客户的价值状况。

三要素

RFM分析前提:
1.最近有过交易行为的客户,再次发生交易的可能性要高于最近买有交易行为的客户;
2.交易频率较高的客户比交易频率较低的客户,更有可能再次发生交易行为;
3.过去所有交易总金额较多的客户,比交易总金额较少的客户,更有消费积极性。

RFM模型

根据划分后的情况,可以进行精确营销,以提高


【二】数据处理

import numpy
import pandas as pd
 data = pd.read_csv('D:\Transaction\2017\data0023.csv'

提取数据后处理三要素:
1>.近度(R):最后购买时间至观察时间
2>.频度(R):时间内用户购买的次数
3>.额度(R):时间内客户总共消费的金额

import time
data['DateDiff'] = pandas.to_datetime('today') - data['DealDateTime']

R = data.groupby(by=['CustomerID'])['DateDiff'].agg({'RecencyAgg': numpy.min})

F = data.groupby(by=['CustomerID'])['OrderID'].agg({'FrequencyAgg': numpy.size})

M = data.groupby(by=['CustomerID'])['Sales'].agg('MonetaryAgg': numpy.sum})



【三】Spss分析


【三】python实现

1> 建模数据处理

单独提取数据表中recency,frequencymonetary和monetary三个字段进行聚类。首先转化为数组。

 #转化为数组
rfm_new = np.array(rfm[['frequency','monetary','recency']])
 #设置随机数
seed=9
2> 建立K—Means模型
from sklearn.cluster import KMeans
clf=KMeans(n_clusters=8,random_state=seed)
clf=clf.fit(rfm_new)
3> RFM拟合

完成后查看K—Means聚类后的8个质心点的值

clf.cluster_centers_

在原始数据表中对每个用户进行聚类结果标记。这样我们就可以知道每个用户ID在RFM模型中所属的类别。

#对原数据表进行类别标记
rfm['label']= clf.labels_

#查看标记后的数据
rfm.head()

#计算每个类别的数据量
c=rfm["label"].value_counts()
image.png

【四】总结&思考

http://bluewhale.cc/2018-02-11/use-python-to-create-rfm-model.html

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容