【参考1】用户流失模型
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
前面谈到了客户细分,这里说下流失分析吧
流失分析是客户细分大框架里面的一部分最重要的标签。切割用户有很多角度(例如性别、年龄等自然属性;成长状况等生命周期属性;贡献情况等价值属性;问题倾向等风险属性;消费特性等行为属性),我觉得最重要的特征是价值和风险,也就是说切割用户的头两刀应该是分开不同价值、风险倾向的用户
流失分析是获得用户风险倾向的分析,分析的结果是按照业务定义的风险类型,给用户打上不同的风险分值和风险分群
有了客户细分模型后,我们可以尝试在做更复杂模型是,进行模型的交叉,也就是说把细分等一些初等模型的结果成为重要模型的输入变量,这有利于提高精确度,最重要的是给模型的解释和实施代理很大的帮助(试想下,我们知道一个人有问题,但如果知道了这个人的细分标签,就意味着我们可以动手拯救他,而不是卧在桥头看水流)
说说流失分析的过程吧
step1-流失的界定:流失的界定是整个流失分析的重要环节,需要结合业务目的和数据状况界定流失(一般来说业务方界定的流失和技术上界定的流失不一致)。如何才算好的流失界定呢个
1、有业务含义,围绕着用户的业务目的来界定流失,例如:目的是促成用户消费,则xx天前有消费,当前没有消费的界定为流失;目的是促成用户提升价值,曾xx天前比当前消费降低50%以上的用户界定为流失
2、有稳定性:可以引入流动性分析,看用户在什么样的流失界定下,自然回复率低,也就是说如果我们不管他,他一般就挂了
3、操作性:回忆下人生(其实我也很年轻,那就回忆别人的吧,呵呵),最大的流失莫过于失去生命,如果到用户死了后再抢救有效果么??呵呵,所以我们界定的用户流失,一定是在发现流失后,有可以行动的方案
3、churn级别设定:详细分开,用户有几种阶段(好-有点问题-有问题-问题过大),我们需要在数据上给每个用户在churn中打一个级别,这对于模型学习有意义,最终使用好用户和有问题的用户对比建模,而不是用有点问题和问题过大的用户。这样有些复杂,但我对比尝试过,虽然对模型准确率没太大提升,但对模型的解释性有帮助,在稳定性上也会好一些吧
5、可以考虑定义多个流失,分别做模型:有多少种业务情况,就有多少种流失,最终可以考虑再做一个大模型,把所有的流失再封装一层
step2-变量列表:重复我个人的观点,变量列表的设计是以了解业务为基础的,每个变量都应该有业务猜测和原因。常把“变量是否有效要模型结果说了算”挂在嘴边的人,不知道技术如何,模型应用上肯定是傻子,尝试着说服他们更多的关注业务吧
1、尽量选择已有的变量,会使得变量准备的工作量小
2、按照业务内容把变量分类,综合考虑业务需要和计算量选择合适的变量;同时可以衍生一些从数据加工角度看冗余,但建模需要的变量(例如把入网时间->在网月份数)
3、确认变量获取的时间长度是否足够:对于消费总量的纯增量数据,只要系统最近没有大割接问题都不大;对于用户等级等快照变量,要想回溯快照可不是件容易的事情,要想好哦
4、已有的模型结果变量,可以作为准备变量交叉参与模型
step3-数据加工和检验:检验比加工更重要
1、数据加工不说了,有些用数据库,有人用c,有人用sas或climenting挖掘工具处理数据,都可以,没有哪个好,只有熟不熟
2、数据检验非常重要(会决定项目的成败),分成3类:单指标验证(每个指标的数据分布状况)、多指标交叉验证(指标间的大小、量级、加和等关系,需要穷举)、时间序列检验(在时间上的稳定性)--我曾经写了大约2000行代码的sas数据检验程序,可以配置的生成html 报告,感觉对效率提升很大
3、调整和反馈:这个看起来小事,实际做起来占用50%以上的数据准备时间,一般第一轮准备的变量都有问题,反馈几轮后数据加工的逻辑问题会减少,但越多会发现数据准备人员和建模人员对变量的理解不一致,没办法不熟悉模型的数据加工人员是要交学费的,只有2个选择-放弃变量或重新获取(有些重新获取是要改动底层的),抉择吧,呵呵
4、问题数据记录:数据检验后,经常发现boss数据源问题,例如银行中发现身份证年龄不足、通信行业发现boss计费或调涨错误,呵呵,记下来,考虑对哪些样本从建模和打分中排除(也能作为模型不准的时候打马虎眼的说辞,试试看??)
step-好好睡个觉,呵呵以上过程已经占用了建模60%以上的工作量(我今天也困了,改天继续)step4-模型建立:流失模型是典型的学习模型,有几个常用方法可以选-决策树、逻辑回归(有人会尝试神经网络,不利于应用和解释,也可以试试看)。
决策树的特点:适用布尔、分类和连续的变量(对连续变量也会内部转化为分类变量)、结果容易解释、筛选变量快;但决策树不稳定,容易训练过度(在训练时看起来很准确,但应用时预测准确率大打折扣)
逻辑回归的特点:逻辑回归的底层思想和多元回归接近,延续了回归算法不温不火的稳定风格,相比回归算法,logistic回归不要求变量有正态分布和等协方差前提,也可以尝试着用哑变量来融入分类变量,使用更方便,但逻辑回归准确率相对较低(所谓成也萧何,败也萧何)。和决策树相比,回归算法稳定性好的多
我习惯于:
1、使用决策树进行变量范围筛选
2、使用逻辑回归进行预测
3、个别时候尝试着用因子分析进行变量转载(我试过的模型,有时候有一点点小的提升,和变量共线性特点有关,但不会有超乎意料的收获)
step5-模型解释:我们进入了最具挑战性的阶段,这个阶段会受前面的过程中是否有很多业务思考影响,也会直接导致模型应用的成功与失败
1、变量的解释目的有2个:给业务使用方信心、推动模型的应用
2、在选择变量时多构造些容易被解释的变量
3、在筛选变量的过程中,应该去从业务角度对去留的变量进行思考,可能这样做对准确率提升帮助不大,但对模型解释非常有利
4、花多一点时间把模型的结果和业务问题做对应,好好思考下为啥xxx这样的变量留下了并且importance这么高
5、尽量使用用户可以听懂和看懂的东西讲解给用户(决策树绝对是解释模型的上选)
6、在准确率的解释上,不要太强调技术指标,讨论下准确率和盖全率就完全ok,如果能把这些指标解释为成本和收益就更ok了
step6-模型应用:如果顺利通过了模型解释,这一步需求方会催着你,否则就是你催着根本不鸟你的需求方了,呵呵--想想别人是否想用你的模型,还是取决于模型解释过程中给你打多少分喽。
1、模型应用首先依赖于业务操作人员,一个漂亮的模型如果无法被业务人员使用、操作起来,而只停留在报告阶段,非常可悲
2、其次模型的应用依赖于系统:如果模型结果可以和系统工作量绑在一起,把流失预警结果直接生成任务,那模型就真的有价值了
3、要想应用好,必须吧模型解释关联到策略或行动:在细分的基础上做流失预警,非常有效,我们可以知道谁要流失,还能看到这个人特点,就可以行动了--举个例子:如果医生告诉你你