RMF模型评分制计算方法(2021/08/04)

在之前的文章中用均值的方法对用户RMF模型进行了分析,

https://blog.csdn.net/andakiwukawa/article/details/119142435

上篇文章中写道:RFM是常用的对用户分析的手法,RFM模型的形式有均值、评分、对应算法,以下就是使用评分制的方法,对用户RMF模型评估。

采用均值分析的方法的思路总结如下:

1.获取相应数据-数据清洗

2.将CustomerID作为行索引

3.添加orders字段用于统计合计

4.计算出OrderData,orders,Sales,采用了分组集合(OrderData取最后一次交易发生日期,orders求和,sales求和)

5.将上面三个值转换成RMF

6.每位用户的RMF值和平均值比较,为用户打标签

7.对RMF进行分析

众所周知,平均数反应的状况往往和实际有较大出入,有的时候还不如中位数。。

6.我们不再和平均值进行比较,我们将用户的RFM值转化成对应分数

7.用户的分数平均分数(或者区间)对比,打标签

原先的代码:

import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
import matplotlib as mpl
#%%
data = pd.read_csv('dataset.csv',encoding='ISO-8859-1')
data

#%%
data.drop(index=data[data.RowID.duplicated()].index,inplace=True)
data

#%%
data['ShipDate']=pd.to_datetime(data['ShipDate'])
data['OrderDate']=pd.to_datetime(data['OrderDate'])

data['interval']=(data['ShipDate']-data['OrderDate']).dt.total_seconds()
data.drop(index=data[data['interval']<0].index,inplace=True)
data['interval']=(data['ShipDate']-data['OrderDate'])
data


#%%
data['ShipMode'].fillna(value=data.ShipMode.mode()[0],inplace=True)

data.drop(columns=['PostalCode'],inplace=True)

data['Discount']=data['Discount'].mask(data['Discount']>1,None)
mean_Discount=round(data[data['Discount'].notnull()].Discount.sum()/\
data[data['Discount'].notnull()].size,2)
data['Discount'].fillna(value=mean_Discount,inplace=True)

data['order-year'] = data['OrderDate'].dt.year
data['order-month']=data['OrderDate'].dt.month
data['quarter']=data['OrderDate'].dt.to_period('Q')
data
#%%
data_14 =data[data['order-year']==2014]
data_14=data_14[['CustomerID','OrderDate','Sales']]
customer_df = data_14.copy()

customer_df.set_index('CustomerID',drop=True,inplace=True)

customer_df['Orders'] = 1

customer_df
#%
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值