精细化运营之用户生命周期模型

**简介:**企业有其生命周期,用户在一家公司也有其生命周期,用户从初次进入一家公司,到消费多次成为熟客,到最后可能慢慢流失掉,这些都是用户不同的生命周期阶段。现在互联网公司都要求针对用户进行精细化运营,这样可以大大的提高用户成交率,同时可以节省运营成本。因此,通过对用户的行为进行分析,判断其所属的生命周期阶段,对于初级用户需要引导其往成长期用户发展,而成长期用户往成熟期用户发展,成熟期用户则可以通过会员机制、头衔认证、定期推送兴趣爱好的内容等保证用户留存,对于休眠期用户则通过召回机制召回沉默用户,促进回流。

1.如何定以用户生命周期?

一般我们采用用户在平台消费的频次,消费的时长以及留存来进行划分。
1.用户消费频次和次周留存率
如下图所示,取了一段时间内的交易用户,计算他们在下一段时间内的留存率情况,做出留存图。
从图中可以发现累计购买1-3次的用户的次周留存率较低,3-6次的用户的次周留存率相对较高,而随着购买频次的越来越高,他们的次周留存率也越来越高,因此,在运营中,我们要想办法将初级用户转化为成长用户,成长用户转化为成熟用户,提升他们的购买频次。
在这里插入图片描述
2.用户消费间隔
发现一段时间内最后两次消费间隔越小的用户购买率越高,特别是30天以内的,因此,从客户刚进入开始,最好在30天内能进行有效营销措施,加速用户生命周期阶段的转化。
在这里插入图片描述

2. 生命周期的具体应用:

RFM之客户细分
有了上面的用户阶段划分,我们就需要对用户做一些具体的措施,比如推送个消息,增加一下曝光或者转化,不同阶段用户可能不一定全部需要预警,我们可以挑出有价值的用户进行营销,我们使用RFM来进行确定。
R值:最近一次消费(Recency)指的是最近一次消费时间与当前时间的间隔。理论上R值越小的客户是价值越高的客户。在目前网购便利的大环境下,顾客有了更多的购买选择和更低的购买成本,去除地域的限制因素,客户非常容易流失,如果想要提高回购率和留存率,需要时刻关注R值。
F值:消费频率(Frequency)指的是顾客在固定时间内(比如一年)的购买次数。实际操作中,由于部分商品的特殊性,比如3C产品,耐用品等即使是忠实粉丝用户也很难在1年内购买多次。所以,这种情况下,会把F值的时间范围去掉,替换成累计购买次数。
M值:消费金额(Monetary)指的是顾客在对应时间内(比如一年)的消费金额。M值和F值是一样的,都带有时间范围,指的是一段时间内的消费金额.

高价值客户:最近消费时间近、消费频次和消费金额都很高,属于高质量客户。
重点发展客户:最近消费时间较近、消费金额高、但频次不高、忠诚度不高的客户,都很有潜力,可以重点发展。
重点保持客户:最近消费时间较远,但消费频次和金额都较高,说明这是一个一段时间没来的忠实客户,我们需要主动和他保持联系。
重点挽留客户:最近消费时间较远、消费频次不高,但消费金额高的用户,可能是将要流失或者已经流失的客户,应当采取挽留措施。
具体的营销策略可以根据各自业务情况的不同进行判断
最后,也可以计算出用户的rfm总得分,判断用户的价值高低,也可以计算出各类型用户的总消费金额,客单价,频次等信息
在这里插入图片描述

#author:szl
#create_time:2019-11-28
#RFM模型
#订单号 门店  第三方门店ID	省份  城市  用户名  商家实收金额	商家实收金额(含佣金)  下单时间
#------RFM用户------#
#用户名  下单次数   最后一次下单时间  订单金额

import numpy as np
import pandas as pd
import os
import datetime,time

path='D:/szl/data/'


def date_diff(a):
    stru_a=datetime.datetime.strptime(a,'%Y-%m-%d %H:%M:%S')
    #a_to_date=datetime.datetime.strftime(stru_a,'%Y-%m-%d')
    datediff = (pd.to_datetime('today') - pd.to_datetime(stru_a)).days
    return datediff


def load_data(path):
    file=os.listdir(path)
    print (file)
    result=pd.DataFrame()
    for i in file:
        df1=pd.read_excel(path+str(i))
        df2=df1[['订单号','门店','第三方门店ID','省份','城市','用户名','商家实收金额','商家实收金额(含佣金)','下单时间']]
        df2['订单号']=df2['订单号'].apply(lambda x:str(x))
        df2['下单时间距今']=df2['下单时间'].apply(lambda x:date_diff(x))
        result=result.append(df2)
    return result

def customer_labels(x):
    if x==111:
         return '高消费熟客户'
    elif x==110:
        return '低消费熟客'
    elif x==101:
        return '需重点发展的潜力顾客'
    elif x==100:
        return '需一般发展的顾客'
    elif x==11:
        return '需要重点关怀的流失熟客'
    elif x==10:
        return '需一般关怀的流失熟客'
    elif x==1:
        return '需重点挽留的流失顾客'
    elif x==0:
        return '需一般挽留的流失顾客'


if __name__=='__main__':
    df=load_data(path)
    print ('数据读取完毕,开始生成rfm用户表')
    R_Agg = df.groupby(by=['用户名'])['下单时间距今']
    R_Agg = R_Agg.agg([('最近一次消费','min')])

    F_Agg = df.groupby(by=['用户名'])['订单号']
    F_Agg = F_Agg.agg([('2019年消费频次','count')])

    M_Agg = df.groupby(by=['用户名'])['商家实收金额(含佣金)']
    M_Agg = M_Agg.agg([('2019年消费金额',sum)])

    rfm = R_Agg.join(F_Agg).join(M_Agg)
   
    #使用均值来判断
    rfm['R是否大于均值']=(rfm['最近一次消费']>30)*1
    rfm['F是否大于均值']=(rfm['2019年消费频次']>rfm['2019年消费频次'].mean())*1
    rfm['M是否大于均值']=(rfm['2019年消费金额']>rfm['2019年消费金额'].mean())*1

    rfm['人群数值']=(rfm['R是否大于均值']*100)+(rfm['F是否大于均值']*10)+(rfm['M是否大于均值']*1)
    rfm['人群类型']=rfm['人群数值'].apply(lambda x:customer_labels(x))
    #查看各类型用户占比
    count=rfm['人群类型'].value_counts().reset_index()
    count.columns=['客户类型','人数']
    count['人数占比']=count['人数']/count['人数'].sum()

    ##具体查看各类用户的消费金额分布
    consumer_r = rfm.groupby('人群类型')['2019年消费金额'].agg([('消费总金额',sum)]).reset_index()
    consumer_r.columns=['客户类型','消费总金额']
    consumer_r['总金额占比']=consumer_r['消费总金额']/consumer_r['消费总金额'].sum()
    new_rfm = pd.merge(count,consumer_r,on='客户类型',how='left')
    #数据输出
    writer1=pd.ExcelWriter(r'D:/szl/data/rfm_result_data.xlsx')
    rfm.to_csv(r'D:/szl/data/rfm_raw_data.csv')
    new_rfm.to_excel(writer)
    writer.save()
  • 2
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
RFM模型是一种用户生命周期模型,它基于用户的消费行为对用户进行分层和细分,以便于企业进行精细化运营。RFM模型主要通过三个指标来衡量用户价值: - Recency(最近一次消费时间):用户最近一次购买时间距今的时间越短,代表用户的忠诚度和活跃度越高。 - Frequency(消费频率):用户购买的次数越多,代表用户对企业的忠诚度越高。 - Monetary(消费金额):用户购买的金额越多,代表用户的价值越高。 在Python中,我们可以使用Pandas和Numpy库来实现RFM模型。以下是一个简单的代码示例: ```python import pandas as pd import numpy as np # 读取数据 data = pd.read_csv('user_behavior.csv') # 计算Recency latest_date = max(data['date']) data['Recency'] = latest_date - data['date'] # 计算Frequency frequency = data.groupby('user_id').size().reset_index(name='Frequency') data = pd.merge(data, frequency, on='user_id') # 计算Monetary monetary = data.groupby('user_id')['amount'].sum().reset_index(name='Monetary') data = pd.merge(data, monetary, on='user_id') # 计算RFM值 r_labels = range(4, 0, -1) f_labels = range(1, 5) m_labels = range(1, 5) r_quartiles = pd.qcut(data['Recency'], q=4, labels=r_labels) f_quartiles = pd.qcut(data['Frequency'], q=4, labels=f_labels) m_quartiles = pd.qcut(data['Monetary'], q=4, labels=m_labels) data = data.assign(R=r_quartiles.values, F=f_quartiles.values, M=m_quartiles.values) # 计算RFM得分 data['RFM_Score'] = data[['R', 'F', 'M']].sum(axis=1) # 分析RFM rfm = data.groupby('RFM_Score').agg({ 'Recency': 'mean', 'Frequency': 'mean', 'Monetary': ['mean', 'count'] }).round(1) # 输出结果 print(rfm) ``` 这个代码示例可以将用户行为数据读取后,计算出每个用户的Recency、Frequency和Monetary指标,然后根据这些指标计算出每个用户的RFM值和RFM得分。最后,可以通过分析RFM得分和指标平均值来对用户进行细分和分析。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值