精华内容
下载资源
问答
  • RFM客户价值模型

    千次阅读 2020-06-01 10:36:20
    RFM客户价值模型1 说明2 导入相关库2 读取数据3 数据审查4 数据预处理5 确定RFM划分区间6 计算RFM因子权重7 RFM计算过程8 保存RFM结果到Excel9 写数据到数据库 1 说明 依赖库:time、numpy、pandas、sklearn、...

    1 说明

    • 依赖库:time、numpy、pandas、sklearn、pyecharts
    • 程序输入:sales.xlsx
    • 程序输出:RFM得分数据写本地文件sales_rfm_score.xlsx和数据表(sales_rfm_score)

    2 导入相关库

    import time  # 时间库
    
    import numpy as np  # numpy库
    import pandas as pd  # pandas库
    import pymysql  # mysql连接库
    from sklearn.ensemble import RandomForestClassifier # RF库
    
    

    2 读取数据

    # 多个工作表的表名
    sheet_names = ['2016','2017','2018','2019','会员等级']
    # 读取多个工作表
    sheet_datas = [pd.read_excel('sales.xlsx',sheet_name=i) for i in sheet_names]
    # 显示头5条数据
    print(type(sheet_datas))
    

    3 数据审查

    for each_name,each_data in zip(sheet_names,sheet_datas):    
        print('[data summary for {0:=^50}]'.format(each_name))
        print('Overview:','\n',each_data.head(4))# 展示数据前4条
        print('DESC:','\n',each_data.describe())# 数据描述性信息
        print('NALL records',each_data.isnull().any(axis=1).sum()) # 缺失值记录数    
        print('Datas_types',each_data.dtypes) # 数据类型
    

    4 数据预处理

    # 去除缺失值和异常值
    for ind,each_data in enumerate(sheet_datas[:-1]):    
        sheet_datas[ind] = each_data.dropna()# 丢弃缺失值记录
        sheet_datas[ind] = each_data[each_data['订单金额'] > 1]# 丢弃订单金额<=1的记录
        sheet_datas[ind]['max_year_date'] = each_data['提交日期'].max() # 增加一列最大日期值
    
    # 汇总所有数据
    data_merge = pd.concat(sheet_datas[:-1],axis=0)
    # 获取各自年份数据
    data_merge['date_interval'] = data_merge['max_year_date']-data_merge['提交日期']
    data_merge['year'] = data_merge['提交日期'].dt.year
    # 转换日期间隔为数字
    data_merge['date_interval'] = data_merge['date_interval'].apply(lambda x: x.days) # 转换日期间隔为数字
    data_merge.head()
    
    # 按会员ID做汇总
    rfm_gb = data_merge.groupby(['year','会员ID'],as_index=False)
                                                .agg({'date_interval': 'min',  # 计算最近一次订单时间
                                                       '提交日期': 'count', # 计算订单频率
                                                       '订单金额': 'sum'})  # 计算订单总金额
    # 重命名列名
    rfm_gb.columns =  ['year','会员ID','r','f','m']
    rfm_gb.head()
    

    5 确定RFM划分区间

    # 查看数据分布
    desc_pd = rfm_gb.iloc[:,2:].describe().T
    print(desc_pd)
    # 定义区间边界
    r_bins = [-1,79,255,365] # 注意起始边界小于最小值
    f_bins = [0,2,5,130] 
    m_bins = [0,69,1199,206252]
    

    6 计算RFM因子权重

    # 匹配会员等级和rfm得分
    rfm_merge = pd.merge(rfm_gb,sheet_datas[-1],on='会员ID',how='inner')
    
    rfm_merge['会员等级'].min()
    
    # rf获得rfm因子得分
    clf = RandomForestClassifier()
    clf = clf.fit(rfm_merge[['r','f','m']],rfm_merge['会员等级'])
    weights = clf.feature_importances_
    print('feature importance:',weights)
    

    7 RFM计算过程

    # RFM分箱得分
    rfm_gb['r_score'] = pd.cut(rfm_gb['r'], r_bins, labels=[i for i in range(len(r_bins)-1,0,-1)])  # 计算R得分
    rfm_gb['f_score'] = pd.cut(rfm_gb['f'], f_bins, labels=[i+1 for i in range(len(f_bins)-1)])  # 计算F得分
    rfm_gb['m_score'] = pd.cut(rfm_gb['m'], m_bins, labels=[i+1 for i in range(len(m_bins)-1)])  # 计算M得分
    
    # 计算RFM总得分
    # 方法一:加权得分
    rfm_gb = rfm_gb.apply(np.int32) # cate转数值
    rfm_gb['rfm_score'] = rfm_gb['r_score'] * weights[0] + rfm_gb['f_score'] * weights[1] + rfm_gb[
    'm_score'] * weights[2]
    
    # 计算RFM总得分
    # 方法一:加权得分
    rfm_gb = rfm_gb.apply(np.int32) # cate转数值
    rfm_gb['rfm_score'] = rfm_gb['r_score'] * weights[0] + rfm_gb['f_score'] * weights[1] + rfm_gb[
    'm_score'] * weights[2]
    
    # 方法二:RFM组合
    rfm_gb['r_score'] = rfm_gb['r_score'].astype(np.str)
    rfm_gb['f_score'] = rfm_gb['f_score'].astype(np.str)
    rfm_gb['m_score'] = rfm_gb['m_score'].astype(np.str)
    rfm_gb['rfm_group'] = rfm_gb['r_score'].str.cat(rfm_gb['f_score']).str.cat(
    rfm_gb['m_score'])
    

    8 保存RFM结果到Excel

    rfm_gb.to_excel('sales_rfm_score.xlsx')  # 保存数据为Excel
    

    9 写数据到数据库

    # # 数据库信息
    # config = {'host': '127.0.0.1',  # 默认127.0.0.1
    #           'user': 'root',  # 用户名
    #           'password': '123456',  # 密码
    #           'port': 3306,  # 端口,默认为3306
    #           'database': 'python_data',  # 数据库名称
    #           'charset': 'gb2312'  # 字符编码
    #           }
    
    # # 建表操作
    # con = pymysql.connect(**config)  # 建立mysql连接
    # cursor = con.cursor()  # 获得游标
    # cursor.execute("show tables")  # 查询表
    # table_list = [t[0] for t in cursor.fetchall()]  # 读出所有库
    # # 查找数据库是否存在目标表,如果没有则新建
    # table_name = 'sales_rfm_score'  # 要写库的表名
    # if not table_name in table_list:  # 如果目标表没有创建
    #     cursor.execute('''
    #     CREATE TABLE %s (
    #     userid               VARCHAR(20),
    #     r_score               int(2),
    #     f_score              int(2),
    #     m_score              int(2),
    #     rfm_score              DECIMAL(20,2),
    #     rfm_group              VARCHAR(10),
    #     insert_date              VARCHAR(20)
    #     )ENGINE=InnoDB DEFAULT CHARSET=gb2312
    #     ''' % table_name)  # 创建新表
    
    # 梳理数据
    write_db_data = rfm_gb[['会员ID','r_score','f_score','m_score','rfm_score','rfm_group']] # 主要数据
    timestamp = time.strftime('%Y-%m-%d', time.localtime(time.time()))  # 日期
    
    # 写库
    for each_value in write_db_data.values:
        insert_sql = "INSERT INTO `%s` VALUES ('%s',%s,%s,%s,%s,'%s','%s')" % \
                     (table_name, each_value[0], each_value[1], each_value[2], \
                      each_value[3],each_value[4],each_value[5],
                      timestamp)  # 写库SQL依据
        cursor.execute(insert_sql)  # 执行SQL语句,execute函数里面要用双引号
        con.commit()  # 提交命令
    cursor.close()  # 关闭游标
    con.close()  # 关闭数据库连接
    
    展开全文
  • 客户价值模型:RFM

    2021-04-30 08:56:37
    1.1、RFM 模型引入 比如电商网站要做一次营销活动,需要针对...那么最终的问题是如何对客户进行分群,即如何建立客户价值模型呢? 在传统企业和电商众多的客户细分模型中, RFM模型 是被广泛提到和使用的。 RFM模.


    在这里插入图片描述

    1.1、RFM 模型引入

    比如电商网站要做一次营销活动,需要针对不同价值的客户群体进行分群,对于 高价值的用户推荐手表、珠宝等高端商品,对于低价值用户推荐打折促销的廉价商品 ,当然还有以下这些问题都是需要考虑的:

    • 1、谁是最佳客户?
    • 2、谁即将要成为流失客户?
    • 3、谁将有潜力成为有价值的客户
    • 4、哪些客户能够留存?
    • 5、哪些客户会对目前的活动有所反应?

    那么最终的问题是如何对客户进行分群,即如何建立客户的价值模型呢?

    在传统企业和电商众多的客户细分模型中, RFM模型 是被广泛提到和使用的。

    RFM模型是 衡量当前用户价值和客户潜在价值 的重要工具和手段。

    1.1.1、RFM 模型介绍

      RFMRencency(最近一次消费),Frequency(消费频率)、Monetary(消费金额) ,三个指标首字母组合,如下所示:

    在这里插入图片描述

    1.1.1.1、一般情况下RFM模型可以说明下列几个事实:

    • 1、最近购买的时间越近,用户对产品促销互动越大
      • R 越小越好
    • 2、客户购买的频率越高,客户就品牌的满意度就越大
      • F 越大越好
    • 3、货币价值(购买金额)将高消费客户和低消费客户区分开来
      • M 越大越好,区别高低消费用户

      根据RFM模型(业务数据:订单数据,时间范围内订单数据),就可以统计在某一段时间内,用户最近的消费间隔,消费次数和消费金额,再根据使用 K-Means算法对用户进行聚类分群 (不仅仅可以局限于这三个数据字段,还可以根据业务需求,加入其他字段,进行调整模型):

    在这里插入图片描述

    1.1.1.2、对最近一个月内所有用户订单数据进行统计RFM值:

    • 按照memberId分组:
      • R: max(finishtime),距离当前天数
      • F:count(orderId)
      • M: sum(orderAmt)
    • 使用聚合函数:
      • groupBy分组,max\count\sum函数聚合,其中使用日期处理函数

    1.1.2、RFM 模型的三个指标:

    • 1)、R(Recency)表示客户最近一次购买的时间有多远
    • 2)、F(Frequency)表示客户在最近一段时间内购买的次数
    • 3)、M (Monetary) 表示客户在最近一段时间内购买的金额。

    RFM模式中,一般的分析型CRM着重在对于客户贡献度的分析,RFM则强调以客户的行为来区分客户。

    1.1.2.1、R:最近一次消费(recency)

      消费指的是 客户在店铺消费最近一次和上一次的时间间隔 ,理论上R值越小的客户是价值越高的客户,即对店铺的回购几次最有可能产生回应。

    如下图,某零食网店用户最近一次消费R值分布图:

    在这里插入图片描述

    1.1.2.2、F:消费频次(frequency)

      消费频率是 客户在固定时间内的购买次数(一般是1年) 。但是如果实操中实际店铺由于受品类宽度的原因,比如卖3C产品,耐用品等即使是忠实粉丝用户也很难在1年内购买多次。所以,有些店铺在运营RFM模型时,会把F值的时间范围去掉,替换成累计购买次数

    如下图,某零食网店用户购买频次图(如1个客户在1天内购买多笔订单,则自动合并为1笔订单):

    在这里插入图片描述

    1.1.2.3、M:消费金额(monetary)

      M值是RFM模型中相对于R值和F值最难使用,但最具有价值的指标。大家熟知的“二八定律”(又名“帕雷托法则”)曾作出过这样的解释: 公司80%的收入来自于20%的用户 。

      理论上M值和F值是一样的,都带有时间范围,指的是一段时间(通常是1年)内的消费金额,在实际项目中认为对于一般店铺的类目而言,产品的价格带都是比较单一的,比如:同一品牌美妆类,价格浮动范围基本在某个特定消费群的可接受范围内,加上单一品类购买频次不高,所以对于一般店铺而言,M值对客户细分的作用相对较弱

    现以国内某知名化妆品店铺举例,店铺平均客单为160元,因此以80元作为间隔,将累积消费金额分段,从表中可以很明显发现,累计消费160元以下用户占比为65.5%(近2/3),贡献的店铺收入比例只占31.6%(近1/3),具体如下:

    在这里插入图片描述

    1.2、RFM 实践应用

    有两种方法来分析RFM模型的结果:
    - 用基于RFM模型的 划分标准 来进行客户细分
    - 用基于RFM模型的 客户评分 来进行客户细分

    1.2.1、客户细分

      选择RFM模型中的1-3个指标进行客户细分,如下表所示。切记细分指标需要在自己可操控的合理范围内,并非越多越好,一旦用户细分群组过多,一来会给自己的营销方案执行带来较大的难度,二来可能会遗漏用户群或者对同个用户造成多次打扰。
    在这里插入图片描述

    最终选择多少个指标有两个参考标准:店铺的客户基数,店铺的商品和客户结构。

    1.2.2、目标用户

      除了直接用RFM模型对用户进行分组之外,还有一种常见的方法是 利用RFM模型的三个属性对客户进行打分,通过打分确定每个用户的质量,最终筛选出自己的目标用户 。

    RFM模型评分主要有三个部分:

    • 1、确定RFM三个指标的分段和每个分段的分值;
    • 2、计算每个客户RFM三个指标的得分;
    • 3、计算每个客户的总得分,并且根据总得分筛选出优质的客户

    比如,实操的过程中一般每个指标分为3-5段,其中R值可以根据开店以来的时间和产品的回购周期来判定,F值根据现有店铺的平均购买频次,M值可参考上文客单价的分段指标。举个例子:

    在这里插入图片描述

    确认RFM的分段和对应分段的分值之后,就可以按照用户情况对应进行打分。

    1.2.3、RFM 计算

    如何依据RFM模型针对用户订单数据进行计算操作呢,具体分析如下所示:

    1.2.3.1、RFM分析:

    R-F-M分别按照5、4、3、2、1进行赋值,分别给出R_Score、F_Score、M_Score :
    

    在这里插入图片描述

    1.2.3.2、用户分层(聚类方法)

      按照R_Score、F_Score、M_Score进行 用户聚类 ,采用方法为K-Means,共分8类(具体分为几类,依据实际业务情况而定),并给RFM赋予权重(目前 权重采用R:F:M =0.25:0.25:0.5 ),计算各类的用户价值。

    业务流程:

    • 1)、计算每个用户RFM值
    • 2)、按照规则给RFM打分
    • 3)、使用KMeans算法聚类分组,划分客户群体

    1.3、新建标签

    1.3.1、新建 业务(4级)标签 : 客户价值标签

    标签名称:客户价值
    标签分类:电商-某商城-商业属性
    更新周期:1天
    业务含义:客户价值分为5类(依据产品或业务需求划分)
    标签规则:
    inType=hbase
    zkHosts=chb1
    zkPort=2181
    hbaseTable=tbl_tag_orders
    family=detail
    selectFieldNames=memberid,ordersn,orderamount,finishtime
    程序入口:
    	com.chb.tags.models.ml.RfmModel
    算法名称:
    	KMEANS
    算法引擎:
    	tags-model_2.11.jar
    模型参数:
    	--driver-memory 512m --executor-memory 512m --num-executors 1 --executor-cores 1
    
    

    1.3.2、新建 属性(5级)标签

    在这里插入图片描述

    属性标签插入SQL语句:

    
    INSERT INTO `tbl_basic_tag` VALUES ('362', '高价值', null, '0', null, '5', '361', '2019-12-07 17:12:24', '2019-12-07 17:12:24', null, null);
    INSERT INTO `tbl_basic_tag` VALUES ('363', '中上价值', null, '1', null, '5','361', '2019-12-07 17:12:31', '2019-12-07 17:12:31', null, null);
    INSERT INTO `tbl_basic_tag` VALUES ('364', '中价值', null, '2', null, '5','361', '2019-12-07 17:12:40', '2019-12-07 17:12:40', null, null);
    INSERT INTO `tbl_basic_tag` VALUES ('365', '中下价值', null, '3', null, '5','361', '2019-12-07 17:12:48', '2019-12-07 17:12:48', null, null);
    INSERT INTO `tbl_basic_tag` VALUES ('366', '超低价值', null, '4', null, '5','361', '2019-12-07 17:13:05', '2019-12-07 17:13:05', null, null);
    

    1.3.3、模型开发思路

    展开全文
  • RFM模型引入 比如电商网站要做一次营销活动,需要针对不同价值...那么最终的问题是如何对客户进行分群,即如何建立客户价值模型呢? 在传统企业和电商众多的客户细分模型中,RFM模型是被广泛提到和使用的。 RFM模

    RFM模型引入

    比如电商网站要做一次营销活动,需要针对不同价值的客户群体进行分群,对于高价值的用户推荐手表,珠宝等高端商品,对于低价值用户推荐打折促销的廉价商品,当然还有以下这些问题都是需要考虑的:

    1.谁是我的最佳客户?

    2.谁即将要成为流失客户?

    3.谁将有潜力成为有价值的客户

    4.哪些客户能够留存?

    5.哪些客户会对你目前对活动有所反应?

    那么最终的问题是如何对客户进行分群,即如何建立客户的价值模型呢?

    在传统企业和电商众多的客户细分模型中,RFM模型是被广泛提到和使用的。

    RFM模型是衡量当前用户价值和客户潜在价值的重要工具和手段。

    RFM是

    Rencency(最近一次消费),

    Frequency(消费频率)、

    Monetary(消费金额),

    三个指标首字母组合,如图所示:

    一般情况下RFM模型可以说明下列几个事实:

    1.最近购买的时间越近,用户对产品促销互动越大

    2.客户购买的频率越高,客户就品牌的满意度就越大

    3.货币价值将高消费客户和低消费客户区分开来

    如图所示,根据RFM模型,就可以统计在某一段时间内,用户最近的消费间隔,消费次数和消费金额,再根据使用k-means算法对用户进行聚类分群

    注意一点,不仅仅可以局限于这三个数据字段,还可以根据业务需求,加入其他字段,进行调整模型。

     

    我们可以根据RFM模型计算出所有用户的RFM值形成一个二维表:

    userid,    R值,     F值,    M值
    
    1     2019-11-01     5      10000
    
    2     2019-10-01     4      800

    对于以上数据的量纲不一致(单位不统一),所以要对数据进行归一化

    如何归一化?---需要自定义归一化的规则!即建立一个评分标准?

    如何建立评分标准?----根据运营/产品的经验,做一个标准

    R: 1-3天=5分,4-6天=4分,7-9天=3分,10-15天=2分,大于16天=1分
    
    F: ≥200=5分,150-199=4分,100-149=3分,50-99=2分,1-49=1分
    
    M: ≥20w=5分,10-19w=4分,5-9w=3分,1-4w=2分,<1w=1分

    根据上面的打分规则就可以对数据进行自定义的归一化,得到如下类似结果:

    userid,    R值,   F值,       M值
    
    1          5        1        2    
    
    2          1        1        1   

    那么现在数据已经归一化了,如何对数据进行分类?--肯定不能简单的将数据直接丢到三维坐标系,因为坐标系的原点不好确定,且三维坐标系只能分为8类

    所以应该使用算法进行分类(聚类)--让算法自动学习用户之间的相似度,然后相似度高的用户,自动聚成一类,最后完成聚类的划分

     

    计算流程

    首先对所有用户的最近一次消费时间/总共消费次数/总共消费金额进行统计

    再进行归一化(运营/产品提供的打分规则)

    再使用算法进行聚类(K-Means)

    根据聚类结果给用户打Tag(标签)

     

    RFM详解

    R值:最近一次消费(Recency)

    消费指的是客户在店铺消费最近一次和上一次的时间间隔,理论上R值越小的客户是价值越高的客户,即对店铺的回购几次最有可能产生回应。目前网购便利,顾客已经有了更多的购买选择和更低的购买成本,去除地域的限制因素,客户非常容易流失,因此CRM操盘手想要提高回购率和留存率,需要时刻警惕R值。

    如下图,某零食网店用户最近一次消费R值分布图:

    1、客户R值呈规律性的“波浪形”分布,时间越长,波浪越小;

    2、最近一年内用户占比50%(真的很巧);

    数据分析:这个数据根据向行业内专业人员请教,已经是比较理想了的。说明每引入2个客户,就有一位用户在持续购买。说明店铺复购做的比较好。

     

    F值:消费频率(Frequency)

    消费频率是客户在固定时间内的购买次数(一般是1年)。但是如果实操中实际店铺由于受品类宽度的原因,比如卖3C产品,耐用品等即使是忠实粉丝用户也很难在1年内购买多次。所以,有些店铺在运营RFM模型时,会把F值的时间范围去掉,替换成累计购买次数。

    如下图,某零食网店用户购买频次图(如1个客户在1天内购买多笔订单,则自动合并为1笔订单):

    1、购买1次(新客户)占比为65.5%,产生重复购买(老客户)的占比为34.4%;

    2、购买3次及以上(成熟客户)的占比为17%,购买5次及以上(忠实客户)的占比为6%。

    数据分析:影响复购的核心因素是商品,因此复购不适合做跨类目比较。比如食品类目和美妆类目:食品是属于“半标品”,产品的标品化程度越高,客户背叛的难度就越小,越难形成忠实用户;但是相对美妆,食品又属于易耗品,消耗周期短,购买频率高,相对容易产生重复购买,因此跨类目复购并不具有可比性。

     

    ​​​​​​​M值:消费金额(Monetary)

    M值是RFM模型中相对于R值和F值最难使用,但最具有价值的指标。大家熟知的“二八定律”(又名“帕雷托法则”)曾作出过这样的解释:公司80%的收入来自于20%的用户。

    这个数据我在自己所从事的公司总都得到过验证!可能有些店铺不会那么精确,一般也会在30%客户贡献70%收入,或者40%贡献60%收入。

    理论上M值和F值是一样的,都带有时间范围,指的是一段时间(通常是1年)内的消费金额,在工作中我认为对于一般店铺的类目而言,产品的价格带都是比较单一的,比如:同一品牌美妆类,价格浮动范围基本在某个特定消费群的可接受范围内,加上单一品类购买频次不高,所以对于一般店铺而言,M值对客户细分的作用相对较弱。

    所以我认为用店铺的累计购买金额和平均客单价替代传统的M值能更好的体现客户消费金额的差异。

    教大家一个特别简单的累积金额划分方法:将1/2的客单价作为累积消费金额的分段,比如客单价是300元,则按照150元进行累计消费金额分段,得出十个分段。

    现以国内某知名化妆品店铺举例,店铺平均客单为160元,因此以80元作为间隔将累积消费金额分段,从表中可以很明显发现,累计消费160元以下用户占比为65.5%(近2/3),贡献的店铺收入比例只占31.6%(近1/3),具体如下:

    基于RFM模型的实践应用

    主要有两种方法来分析RFM模型的结果:用基于RFM模型的划分标准来进行客户细分,用基于RFM模型的客户评分来进行客户细分。

     

    基于RFM模型进行客户细分

    CRM实操时可以选择RFM模型中的1-3个指标进行客户细分,如下表所示。切记细分指标需要在自己可操控的合理范围内,并非越多越好,一旦用户细分群组过多,一来会给自己的营销方案执行带来较大的难度,而来可能会遗漏用户群或者对同个用户造成多次打扰。

    最终选择多少个指标有两个参考标准:店铺的客户基数,店铺的商品和客户结构。

    店铺的客户基数:在店铺客户一定的情况下选择的维度越多,细分出来每一组的用户越少。对于店铺基数不大(5万以下客户数)的店铺而言,选择1-2个维度进行细分即可。对于客户超过50万的大卖家而言可以选择2-3个指标。

    店铺的商品和客户结构:如果在店铺的商品层次比较单一,客单价差异幅度不大的情况下,购买频次(F值)和消费金额(M值)高度相关的情况下,可以只选择比较容易操作的购买频次(F值)代替消费金额(M值)。对于刚刚开店还没形成客户粘性的店铺,则可以放弃购买频次(F值),直接用最后一次消费(R值)或者消费金额(M值)。

     

    通过RFM模型评分后输出目标用户

    除了直接用RFM模型对用户进行分组之外,还有一种常见的方法是利用RFM模型的三个属性对客户进行打分,通过打分确定每个用户的质量,最终筛选出自己的目标用户。

    RFM模型评分主要有三个部分:

    1、确定RFM三个指标的分段和每个分段的分值;

    2、计算每个客户RFM三个指标的得分;

    3、计算每个客户的总得分,并且根据总得分筛选出优质的客户

    比如,实操的过程中一般每个指标分为3-5段,其中R值可以根据开店以来的时间和产品的回购周期来判定,F值根据现有店铺的平均购买频次,M值可参考上文客单价的分段指标。

    举个例子:

    确认RFM的分段和对应分段的分值之后,就可以按照用户情况对应进行打分。

    这个时候可能有人会对此产生质疑,我如何验证这个给予的分值就是合理的呢?一般使用经验值或用算法模型进行验证。

     

    展开全文
  • 客户价值模型的三个输出结果

    千次阅读 2009-12-16 15:08:00
     一、客户价值模型的应用过程 对于分析模型来说,建模与应用往往是两个相反的过程:建模是从具体到抽象,而应用却是从抽象到具体。 客户价值的计算就是一个典型的从“具体到抽象”的过程:先是准备大量具体的...
       		

      一、客户价值模型的应用过程
      对于分析模型来说,建模与应用往往是两个相反的过程:建模是从具体到抽象,而应用却是从抽象到具体。
      客户价值的计算就是一个典型的从“具体到抽象”的过程:先是准备大量具体的基础数据、接着结合参数和规则计算各类成本、然后计算出每个用户的当月边际价值、最后将月度边际价值进行累加并结合一次性成本计算出抽象的“累计贡献价值”。
      但是,客户价值模型的应用过程却是相反。以大幅优惠分析为例,通过客户价值模型结果我们很容易找到被过度优惠的用户,但为何这些用户被过度优惠了呢?这时候,我们就需要客户价值模型的中间数据以确定到底是哪一项成本偏高了,以便可以找对方向而不是漫无边际地随便分析。当找到方向并得出分析结论时,最终写分析报告时经常需要列出经典案例,这时就需要用到最初的原始汇总数据了。
      所以,客户价值模型的应用实际是个由抽象到具体、层层剖析的过程。无论是大幅优惠的分析,还是收入风险监控、套餐评估、渠道评估等方面的应用,都不仅仅需要一个最终结果,而是需要用到整个过程的数据。
      计算和分析的关系就如下图所示:
      BLOG75A_17659845984b2886c71715f.JPG
      
     

        二、客户价值模型的三个输出结果
      通过以上分析可以清楚,客户价值模型的应用是一个层层深入、不断深究的过程,模型的最终结果可以帮我们快速发现问题,但要真正深入的定位原因,却需要用到模型的中间结果。从某种意义上说,该模型的过程数据比结果数据更有用。
      客户价值模型是个用户级的基础模型,其输出当然也是用户清单级的数据,从技术角度看,其结果就是数据库表。
      客户价值模型主要输出三张表:
      1、基础用户宽表
      客户价值模型的计算需要用到大量的基础数据,这些数据通过汇总从不同的数据源汇总而成。从纯粹模型计算角度看,这些基础数据没有合成宽表的必要,因为可以一项项计算出来后进行关联汇总。但是,为了后续分析的方便性,有必要将这些众多的中间表合并成一张用户宽表,以给后续的分析工作减少整理数据的麻烦。
      该表主要信息为:用户基础信息、出账收入大致情况、收入和成本计算的基础数据、欠费情况、终端补贴情况等。
        
      2、当月边际价值表
      该表用来存放月度边际价值的计算结果和成本细项,包括用户基础信息、出账收入大致情况、结算收入情况、通信成本明细、结算成本明细、优惠和积分成本等。
      
      3、累计贡献价值表
      考虑到数据的可追溯性以及未来模型重构后进行分析比较的需要,我们设计该模型时只考虑追溯最近12个月的月度边际价值。
      该表主要信息为:用户基础信息、累计贡献价值、最近12个月的月度边际价值,以及一次性成本。
      之所以将12个月的价值都设成一个字段一是为了汇总的效率,二是为了便于分析月价值的波动情况。
      
      三、用户基础数据宽表的设计

    字段信息类别

    字段列表

    用户基本数据

    用户编号、手机号码、地区代码、品牌类型、套餐编号、入网时间、渠道、停开状态、停机时间

    收入基础数据

    出账收入、套餐月费、语音收入、短信收入、上网收入、梦网收入、其他收入

    网间结算收入相关基础数据

    联通短信MT次数、联通固话来话时长、联通手机来话时长

    电信短信MT次数、电信固话来话时长、电信手机来话时长

    通信成本相关基础数据

    非漫游本地计费时长、非漫游长途计费时长、漫游计费时长

    短信发送次数、短信接收次数

    彩信发送次数、彩信接收次数

    G网数据流量、T网数据流量

    结算成本相关基础数据

    联通短信MO次数、联通固话去话时长、联通手机去话时长

    电信短信MO次数、电信固话去话时长、电信手机去话时长

     

    国际漫游通话费、国际漫游短信费、国际漫游上网费、国际长途费

     

    省际漫游出访时长、省际出访上网流量、省际短信发送条数

     

    梦网短信信息费、梦网彩信信息费、梦网WAP信息费、梦网彩铃信息费、梦网KJAVA信息费、梦网IVR信息费

     

    MM信息费、手机支付费用

    其他基础数据

    馈赠金金额、新增积分

    终端补贴金额、开始补贴时间、结束补贴时间


      
      四、当月边际价值表的设计

    字段信息类别

    字段列表

    用户基本数据

    用户编号、手机号码、地区代码、品牌类型、套餐编号、入网时间、渠道、停开状态、停机时间

    收入基础数据

    出账收入、套餐月费、语音收入、短信收入、上网收入、梦网收入、其他收入

    网间结算收入

    联通短信结算收入、联通固话结算收入、联通手机结算收入、电信短信结算收入、电信固话结算收入、电信手机结算收入

    通信成本明细

    语音本地话务成本、语音长途话务成本、语音漫游话务成本

    短信发送成本、短信接收成本

    彩信发送成本、彩信接收成本

    G网数据流量成本、T网数据流量成本

    结算成本明细

    联通短信结算成本、联通固话结算成本、联通手机结算成本

    电信短信结算成本、电信固话结算成本、电信手机结算成本

     

    国家漫游语音结算成本、国家漫游短信结算成本、国家漫游上网结算成本、国际长途结算成本

     

    国内漫游语音结算成本、国内漫游上网结算成本、省际短信结算成本

     

    梦网短信结算成本、梦网彩信结算成本、梦网WAP结算成本

    梦网彩铃结算成本、梦网KJAVA结算成本、梦网IVR结算成本

     

    MM结算成本、手机支付结算成本

    其他成本

    优惠成本、积分成本、其他边际成本

    结果

    月度边际价值


      
      五、累计贡献价值表的设计

    字段信息类别

    字段列表

    用户基本数据

    用户编号、手机号码、地区代码、品牌类型、套餐编号、入网时间、渠道、停开状态、停机时间

    月度边际价值数据

    月价值1、月价值2、月价值3、月价值4、月价值5、月价值6

    月价值7、月价值8、月价值9、月价值10、月价值11、月价值12

    一次性成本数据

    欠费成本、酬金成本、终端补贴、实物成本、其他一次性成本

    最终结果数据

    累计贡献价值、上月累计贡献价值

    展开全文
  • 一、理论上的客户价值模型可望而不可及 对于客户价值模型(Customer Value Model,CVM),做过数据仓库或数据挖掘的人恐怕都不会感到陌生。电信行业的客户价值模型就跟离网挖掘一样经典,出现在大量的数据挖掘相关的...
  • 客户价值模型-RFM 1.RFM模型引入 比如电商网站要做一次营销活动,需要针对不同价值的客户群体进行分群,对于高价值的用户推荐手表,珠宝等高端商品,对于低价值用户推荐打折促销的廉价商品,当然还有以下这些问题都...
  • 转载于:https://www.cnblogs.com/shujuxiong/p/9280555.html
  • 文中从客户价值视角通过建立模型分析互联网企业并购,探讨互联网巨头并购互联网中小企业中出现的高溢价问题。研究表明,互联网中小企业在并购中为了获取溢价选择竞争策略,互联网巨头为了合并成功选择合作策略。文章...
  • http://bbs.fanruan.com/course-33.html 转载于:https://www.cnblogs.com/guohu/p/11518397.html
  • 月度边际价值的计算办法 关于基于边际成本和参数假设的客户价值模型,上篇博文主要介绍了模型的设计思路,接着将陆续详细介绍模型的实现细节,其中本篇主要阐述月度边际价值的计算办法。 月度边际价值的含义是每个...
  •  客户累计贡献价值的计算办法 在客户价值模型中,除了月度边际成本外,还需要考虑酬金、终端补贴等一次性成本,这些成本的处理需要一定的技巧。假如将一次性成本完全放在某一个月,那么必将引起客户价值的跳变;...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 1,246
精华内容 498
关键字:

客户价值模型