以下使用RFM模对用户在CDNOW网站的消费行为进行分析(利用Python对数据进行全面分析详见链接:https://zhuanlan.zhihu.com/p/98102570):
数据来源于CDNOW,链接:http://www.brucehardie.com/datasets/
打开Power BI软件,点击获取数据,选择文本/CSV获取数据。
数据集一共包含5个字段,点击转化数据进行数据预处理。
数据清洗后,在主页里点击关闭并应用。
因order_dt列的数据无法自动转换成日期格式,点击数据页面,新建列order_dt2,DAX函数如下:
order_dt2=LEFT([order_dt],4)&“/”&MID([order_dt],5,2)&“/”&RIGHT([order_dt],2)
将order_dt2列的数据类型改为日期格式,并将日期格式自定义为(yyyy/mm/dd)的格式。
新建列,写入DAX函数,计算最后一个交易日期:
最后一个交易日期 = MAXX(FILTER(CDNOW_master,EARLIER(CDNOW_master[user_id])=CDNOW_master[user_id]),CDNOW_master[order_dt2])
设置当前的交易日期为度量值:
lastdate = LASTDATE(ALLSELECTED(CDNOW_master[最后一个交易日期]))
新建列计算R值,并将其转化为整数,计算交易的间隔天数:
R = [lastdate]- CDNOW_master[最后一个交易日期].[Date]
选择新建度量值,计算每一单的交易频次:
F = COUNT(‘CDNOW_master’[user_id])
选择新建度量值,计算每一单的交易金额:
M = SUM(CDNOW_master[order_amount])
将R、F、M值各自按照平均值划分为高、低两类,高于平均值的赋值为1,低于平均值的赋值为0,在建模中选择新建表,用函数将用户ID、R、F、M的值组成一张新表。
新建列,使用AVERAGE函数,分别计算R、F、M的平均值。
算出R、F、M的得分:
R得分 = IF(‘RFM’[R]<=RFM[AVG_R],1,0)
F得分 = IF(‘RFM’[F]>=RFM[AVG_F],1,0)
M得分 = IF(‘RFM’[M]>=RFM[AVG_M],1,0)
合并RFM值:
RFM = ‘RFM’[R得分]&‘RFM’[F得分]&‘RFM’[M得分]
根据RFM的综合分值对用户进行分层,使用SWITCH函数将其分为8类:
客户分层 = SWITCH(RFM[RFM], “111”,“重要价值客户”,
“011”,“重要保持客户”,
“101”,“重要挽留客户”,
“001”,“重要发展客户”,
“110”,“一般价值客户”,
“010”,“一般保持客户”,
“100”,“一般挽留客户”,
“000”,“一般发展客户”)
数据建模后,将CDNOW_master表和RFM表连接起来。
制作Dashboard,根据用户RFM分层添加图表及筛选器,数据可视化结果如下图所示。
从用户分层结果可知: