背景:电商企业沉积的客户交易数据繁杂。需要挖掘出不同用户群体的特征与价值,再针对不同群体提供不同的营销策略。
数据:某电商企业客户近期购买的数据。包含客户基本信息,商品信息,交易记录。
目标:分析客户交易数据,挖掘出高价值客户,进行精准营销,降低营销成本。
【一】分析思路
RFM模型:是一种衡量客户价值和客户创利能力的重要工具和手段。该机械模型通过一个客户的近期购买行为、购买的总体频率以及花了多少钱三项指标来描述该客户的价值状况。
RFM分析前提:
1.最近有过交易行为的客户,再次发生交易的可能性要高于最近买有交易行为的客户;
2.交易频率较高的客户比交易频率较低的客户,更有可能再次发生交易行为;
3.过去所有交易总金额较多的客户,比交易总金额较少的客户,更有消费积极性。
根据划分后的情况,可以进行精确营销,以提高
【二】数据处理
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
网友评论