数据挖掘之客户流失模型

模型目的:预防核心客户流失,提升核心客户活跃率

 

背景:女装C店,客户群稳定,每周上新款。一年有数次大促,一次VIP回馈

 

建模思路:一般客户管理模块会参考RFM,这里同样参考RFM。M(成交金额)上,以年为周期,周期内所有有成交客户为横轴,成交金额为纵轴,按成交金额降序排列。整个成交金额呈长尾分布。并且,约15%的客户贡献75%左右的销售额。又由于客户群的购买行为,特别是核心客户,是围绕着店铺上新的,所以数据上会表现出,F和M高度相关,相关系数接近0.9。考虑到建模目的以及为了方便业务方理解操作,客户的分类原则就是,设计一个关键指标,把核心客户从所有客户中分出来。既然核心客户是紧紧围绕上新的,那我可以作个假定,就是每次上新都买的客户是最核心的客户。于是,我们就对F进行转换, 一天中,只要客户买了,这天就计为1,无论你成交了多少次,然后取360天的购买数据,用360/累计购买天数,得到关键指标------“每隔几天购买”。这样,关键指标的区间就是[1,360],而落在[1,30)区间的客户数量约13%,贡献70%以上的销售额,很契合长尾分布。这样最核心的客户,自然就是落在[1,10)区间的客户。其他客户分类也就依次按区间划分,由于我们主要关注核心客户,所以为了方便,先直接分出[10,20),[20,30),[30,40),[40,60),[60,90),[90,180),[180,360),360。总共9个区间。

当然,这里只完成了静态分类。为了动态监控客户分类的变化情况,必须作其他设计。先考虑时间窗口即监控的周期,设计原则一是要覆盖核心客户,及时反馈核心客户变化情况;二是业务方的主动服务的工作强度和客户接受能力。反正就是,保证及时且不能过频。综合下来就是每月输出监控信息最佳,即以30天作时间窗口。接下来设计监控指标,设计原则是指标对客户购买频率变化敏感。“每隔几天购买”相当于是从监测时间点往前推360天,作为均值描述近360天购买频率。而我们还需要知道客户最近的购买频率以及购买频率的波动情况。因此,为了监控各类客户最近情况,我们引入“该类客户近期是否购买”,该指标描述客户从监测时间点往前推一段时间,这段时间内是否有购买,比如[1,10)区间客户近10天内是否有购买,[30,40)区间客户近40天内是否有购买等。为了监控波动,借鉴时间序列分析的方法,并考虑到计算量,把近360天的购买天数按时间窗口即每30天一个组,形成12项时间序列。计算时间序列的d值,把12项组合成4项,取“前两项的最大值-后两项的最小值”。这样我们就得到了3个监控指标,“该类客户近期是否购买”,d值和“前两项的最大值-后两项的最小值”,初期我们通过3个指标设计一个过滤规则,对各类客户打标签,即(维持,上升,下降)之一。数据累积到一定程度,再根据样本的分布训练分类算法。

 

实现:语言python+sql,客户分类和标签数据定期生成在分析服务数据库中,业务平台连接分析服务数据库,按一定格式呈现给业务方。

 

初期效果:上线2个月核心客户活跃率比同期高出2个点。年终突破90%可期。 

posted @ 2016-02-23 12:56  惟求天道  阅读(527)  评论(0编辑  收藏  举报