1、做好用户流失预测可以降低营销成本。老生常谈,新客户开发成本是老客户维护成本的5倍。
2、获得更好的用户体验。并不是所有的增值服务都可以有效留住客户。
3、获得更高的销售回报。价格敏感型客户和非价格敏感性客户。
1、流失客户有哪些显著性特征?
2、当客户在哪些特征下什么条件下比较容易发生流失?
该数据集有21个变量,7043个数据点。变量可分为以下三个部分:用户属性、用户行为、研究对象。
用户属性customerID:用户IDgender:性别(Female&Male)SeniorCitizen:老年人(1表示是,0表示不是)Partner:是否有配偶(YesorNo)Dependents:是否经济独立(YesorNo)tenure:客户的职位(0-72,共73个职位)
研究对象Churn:该用户是否流失(YesorNo)
分析视角是分析方法的灵魂。
分析方法有上百种,但分析视角只有四种:
一旦将业务需求拆解成指标,接下来只需要针对每个指标进行分析视角四选一即可。
数据集描述,已经将变量分为三个维度了:用户属性、用户行为、研究对象(是否流失客户),三个维度组合一下就得出了以下解题思路了:
以上两个分析思路运用的是【对比视角】,该视角下具体的分析方法有:
以上的分析方法是统计分析,只能一个维度一个维度地去比较。但实际情况中,并不是每个维度的权重都一样的,那如何去研究各个维度的权重?
权重问题属于分类视角,故我们可以采用分类模型,要用哪个分类模型呢?不知道。可以全部采用,看模型精度得分,然后选得分最高的模型进行进一步预测。
综合统计分析和XGB算法输出特征重要性得出流失客户有以下特征(依特征重要性从大到小排列):
当条件覆盖得越多,人群越精确,但与此同时,覆盖的人群也会越少。业务方可直接在数据库中,通过SQL检索符合要求的客户,然后做针对性的运营工作。
如何留住客户,可以从两方面去思考:
TotalCharges列是数值型数据,先画直方图查看数据分布形态。
研究对象'Churn'列重新编码“Yes”=1,“No”=0。重新编码有下面两种方法。
方法一:replace
解决样本不均衡有以下方法可以选择:
提取特征
组间有显著性差异,频数分布比较才有意义,否则可能会做无用功。"卡方检验",就是提高频数比较结论可信度的统计方法。
ChurnbySeniorCitizen的卡方临界值是0.00,小于0.05,表明SeniorCitizen组间有显著性差异,可进行【交叉分析】
ChurnbyPartner的卡方临界值是0.00,小于0.05,表明Partner组间有显著性差异,可进行【交叉分析】
ChurnbyDependents的卡方临界值是0.00,小于0.05,表明Dependents组间有显著性差异,可进行【交叉分析】
ChurnbyMultipleLines的卡方临界值是0.99,大于0.05,表明MultipleLines组间无显著性差异,不可进行交叉分析
ChurnbyInternetService的卡方临界值是0.00,小于0.05,表明InternetService组间有显著性差异,可进行【交叉分析】
ChurnbyOnlineSecurity的卡方临界值是0.00,小于0.05,表明OnlineSecurity组间有显著性差异,可进行【交叉分析】
ChurnbyOnlineBackup的卡方临界值是0.00,小于0.05,表明OnlineBackup组间有显著性差异,可进行【交叉分析】
ChurnbyDeviceProtection的卡方临界值是0.00,小于0.05,表明DeviceProtection组间有显著性差异,可进行【交叉分析】
ChurnbyTechSupport的卡方临界值是0.00,小于0.05,表明TechSupport组间有显著性差异,可进行【交叉分析】
ChurnbyStreamingTV的卡方临界值是0.00,小于0.05,表明StreamingTV组间有显著性差异,可进行【交叉分析】
ChurnbyStreamingMovies的卡方临界值是0.00,小于0.05,表明StreamingMovies组间有显著性差异,可进行【交叉分析】
ChurnbyContract的卡方临界值是0.00,小于0.05,表明Contract组间有显著性差异,可进行【交叉分析】
ChurnbyPaperlessBilling的卡方临界值是0.00,小于0.05,表明PaperlessBilling组间有显著性差异,可进行【交叉分析】
ChurnbyPaymentMethod的卡方临界值是0.00,小于0.05,表明PaymentMethod组间有显著性差异,可进行【交叉分析】
从卡方检验的结果,kf_var包含的特征,组间都有显著性差异,可进行频数比较。
频数比较--柱形图
组间有显著性差异,均值比较才有意义。显著性检验,先通过了齐性检验,再通过方差分析,最后才能做均值比较。
警告:ChurnBYMonthlyCharges的P值为0.00,小于0.05,表明齐性检验不通过,不可作方差分析
警告:ChurnBYTotalCharges的P值为0.00,小于0.05,表明齐性检验不通过,不可作方差分析
用户出现以下特征比较容易流失:
我们可以在SQL(数据库)上找有以上特征的客户,进行精准营销,即可以降低用户流失。虽然特征选得越多,越精确,但覆盖的人群也会越少。故,我们还需要计算“特征”的【重要性】,将最为重要的几个特征作为筛选条件。
计算特征的【重要性】,是“分类视角”,接下来我们会挑选常见的分类模型,进行批量训练,然后挑出得分最高的模型,进一步计算“特征重要性”。
以上两种方法,哪个能让模型精度提高,就选哪个。根据模型的最后得分,我选了“离散化”来处理量纲差异大。
特征离散化后,模型易于快速迭代,且模型更稳定。
1、处理'MonthlyCharges':
离散操作:18= 通过同行百分比的“交叉分析”发现,label“Nointernetserive”的人数占比在以下特征[OnlineSecurity,OnlineBackup,DeviceProtection,TechSupport,StreamingTV,StreamingTV]都是惊人的一致,故我们可以判断label“Nointernetserive”不影响流失率。因为这6项增值服务,都是需要开通“互联网服务”的基础上才享受得到的。不开通“互联网服务”视为没开通这6项增值服务,故可以将6个特正中的“Nointernetserive”并到“No”里面。 整数编码的方法有两种: 分拆变量 处理样本不均衡常用的方式有三种: 笔者先后尝试了“分层抽样”和“欠抽样”,前者最终得到的模型中精度最高的是0.63,而后者最终得到的模型中精度最低是0.78,最高是0.84。所以说“抽样方式”的选择极为重要,大家要在这里多试错。 分层抽样 过抽样后数据特征:(10348,17)训练数据特征:(7243,17)测试数据特征:(3105,17)过抽样后数据标签:(10348,)训练数据标签:(7243,)测试数据标签:(3105,) 使用分类算法 笔者尝试了两个算法分别输出“特征重要性”:CatBoost算法和XGB算法 【分析】使用“电子支票”支付的人更容易流失。 ChurnbyMonthlyCharges的卡方临界值是0.00,小于0.05,表明MonthlyCharges组间有显著性差异,可进行【交叉分析】 ChurnbyTotalCharges的卡方临界值是0.00,小于0.05,表明TotalCharges组间有显著性差异,可进行【交叉分析】 基于"MonthlyCharges"和“TotalCharges”画四分图:求两个维度的均值