Reading 《Causal Analysis of Customer Churn Using Deep Learning》
🔗:Causal Analysis of Customer Churn Using Deep Learning
Modeling Approach
摘要
流失模型的因果分析可以预测客户在可预见的未来是否会流失,并帮助企业识别流失的影响和可能的原因,随后使用这些知识来应用定制的激励措施。
本文提出了一种基于深度前馈神经网络的高维稀疏数据分类框架和序列模式挖掘方法。我们还提出了一个因果贝叶斯网络来预测导致客户流失的原因概率。
本文提供了一个现实世界的客户流失分析,从现状推断到未来的方向
关键词:流失分析,因果分析,深度神经分析网络、数据挖掘
1.介绍
客户在流失之前通常会提供一些警告,因此流失预测系统主要关注客户行为,以识别可能流失的特定客户,并指出流失的原因。这些因素将帮助营销人员制定有效的保留策略,增加整体客户终身价值,并帮助增长公司的市场价值。
作为本研究的主要贡献,我们建立了一个特定的流失倾向建模工作框架来分析客户的金融行为数据,然后将该模型推广到任何养老基金业务。
- 首先,我们分析了12个月的时间窗数据,以预测未来6个月的用户流失情况。因为从12个月的观察窗口中挖掘数据可以让我们提取流失的潜在因素。
- 然后,通过利用贝叶斯网络来扩大模型,以描述由于多种原因而故意发生的流失,并表明对共同特征的假设检验会极大地影响预测结果。
- 最后,提出了一种特定的因果分析方法,该方法可应用于大多数养老基金使用的其他类似数据集。
值得注意的是,该研究仅关注DFF神经网络在解决通常在金融网络中创建的大规模高维稀疏数据集上的流失预测的性能。该模型首先对基线分类器进行预处理,以解决数据稀疏和偏斜问题,然后将结果与DFF神经网络的输出进行比较。这些非常高维度的数据主要是在订阅基础业务中产生的,主要是在养老基金中,这是由于在客户关系管理(CRM)系统中使用了基于区间的特征。
本文的剩余部分如下:
- 第2节回顾了最近的相关流失研究
- 第3节给出了深度学习方法在流失预测问题中的应用的初步知识。
- 第4节讨论了用于预测流失潜在原因的具体研究和分析方法,包括问题定义和流失倾向建模工作流。
- 第5部分对收集到的数据进行分析,以解决研究问题:通过退休基金收集的财务数据进行流失的因果分析,并给出因果分析的实验结果。
- 第6节总结和总结了论文,并讨论了研究结果对现实世界应用的影响。
2.相关工作
以往的研究大多集中于确定特定数据集的客户流失变量,而不是客户流失原因分析。
下面方法已经被各种各样地应用于当前的客户流失预测方法,但大多数用于从电信、银行和零售市场收集数据。
- CHAMP (Churn analysis, modeling, and prediction)是一个预测消费者取消手机服务的集成系统。
- Alyuda神经智能利用神经网络(NNs)进行数据挖掘,预测银行[4]的客户流失。
- 利用客户流失预测(CCP)算法对文本数据进行集成,并结合梯度提升、过采样和对比序列模式挖掘等不同分类器,在单一年份的观测窗口上,已被证明是处理养老基金[6]数据高度偏斜的一种实用策略。
- 与标准的机器学习(ML)方法相比,深度学习技术可以处理非常大的数据集,并且结合深度学习和卷积神经网络(cnn)成功地预测了churn[8]。
- 新的pc稳定方法使用DFS数据有效地学习因果结构,允许对巨大的时间信息数据集[9]进行时间因果建模。用有向无环图表示贝叶斯网络[10]中的因果关系。
相比之下,所提出的方法使用高维稀疏数据的大规模金融数据集进行测试。此外,据我们所知,之前没有研究考虑养老保险公司客户流失的因果分析。受上述研究的启发,提出了一种结合深度学习和贝叶斯理论的新方法来改进流失预测建模系统。
3.预备知识
之前方法的适用范围:只有在客户数据库的规模非常小,样本大小不同,并且对于较大的数据集失败的情况下才有效。
我们提出的方法的优点:
- 1)深度学习的卓越精度;
- 2)比经典的ML包含更多的变量;
- 3)深度学习算法可以从广泛的客户统计数据、行为变量和数十亿客户参与日志中提取模式,同时避免盲点。
- 4)减少了耗时的特征工程和人工财务数据分析
- 5)不仅是因为深度学习的有用特征,而且我们只需要改变最后一层(几层)来更新所提出的模型以适应未来的数据,跳过了耗时的训练模型
- 6)深度学习(特征转换)利用历史数据对特征进行差异加权
我们的方法:采用深度学习前馈(deep learning feedforward, DFF)算法进行实验,前馈神经网络使用一层的输出作为下一层的输入,层之间没有循环。
模型的缺点:它仍然是一个黑箱模型,即深度学习不能以容易理解的方式表达底层数据中的未揭示模式
缺点的解决方法:我们进行了实验分析,以识别流失影响和可能的原因,使用贝叶斯网络来解决神经网络模型的复杂性。
4.方法
4.1 问题的定义
dataset:来自一家养老保险公司的12个数据集,用于真实世界的实验,以验证所提出的模型的有效性。
随后的6个月时间窗口内关闭了他们的账户,我们就将其定义为离客:
- 0:表示在随后的6个月时间窗口内未关闭
- 1:表示帐户已关闭
满足模型发展的标准:
- 保留6个月以上的客户数据
- 移除了账户余额低于1500美元的客户数据
4.2 流失倾向的模型
数据集切分: train/test = 8/2
处理二分类产生数据分布偏差的方法:预处理阶段采用合成少数类过采样技术(SMOTE)为少数类合成新样本,以确保训练集中每个类别(1或0)的样本计数相等(14031)。
使用scikit-learn库中的voting ensemble来组合多个模型的预测结果,将集成硬投票和软投票应用于比较监督模型。
定义了一个特定的ANN架构来解决研究问题,在流失倾向模型的最后一步中,我们将对分类器结果具有最大预测能力的特征作为因果变量。然后,使用有向无环图(directed acyclic graph, DAG)跟踪潜在变量和未知参数,观察因变量来预测目标或自变量,选择最具影响力的特征,并将其用于提出的因果贝叶斯网络。之后,我们采用了一种不同的方法进行因果分析。根据独立特征之间的统计关系,构建依赖特征之间的依赖结构,即因果图。
参数列表
Network type | Deep ANN-1 | Deep ANN-2 |
---|---|---|
Hidden layers | 4 | 4 |
Dense activation 1,2,3 and 4 | tanh, and 3 x relu | tanh, and 3 x relu |
Dropout 1, 2,3 and 4 | 0.2, 0.2, 0.2, and 0.2 | 0.2, 0.2, 0.2, and 0.4 |
Output activation function | Sigmoid | Sigmoid |
Learning rate | 0.000474718 | 0.000012 |
Epochs | 100 | 100 |
Batch size | 512 | 512 |
Optimisation algorithm | ADAM | ADAM |
5.实验设置及结果
1.数据集
数据集:在某地方金融公司提供的12个成员持有账户的数据集上进行了实验。数据集包括客户账户、人口统计数据、客户参与度和金融数据。每个数据集包含大约25万个样本,包含88个特征(71个数值特征和17个名义特征)。
2.评价标准
- AUC
- Recall
3.相关分析
使用相关分析来识别变量之间潜在的有意义的联系,选择高度相关的关系进行后续的因果发现和假设检验
4.因果实验分析设置
🔗:因果推理
🔗:dowhy
使用python包DoWhy,使用贝叶斯因果图对假设进行编码,并确定特征之间的依赖程度。DoWhy基于贝叶斯因果图模型对所有潜在的方法进行因果发现,以识别期望的效果,利用基于图的标准来找到可能的解释方法。
5.预测结果
AUC:XGBoost最优,为0.8,DFF NN和随机森林(RF)的性能基本相同,比逻辑回归高了7.5%
Test Accuracy:DFF NN最优,为0.86
6.因果分析结果
图6显示了基于影响流失率的假设的实证结果和相关因果图:
- 高限额账户余额可能会影响客户的流失,因为与高账户余额的客户相比,限额较低(账户余额)的用户可能不会忠诚于养老基金。
- 账户余额变动金额可能影响客户任期。毕竟,客户任期通常是基于账户余额的。账户余额本身可能会影响churn。在大多数养老基金中,账户余额不应低于1500美元,低账户余额通常代表着一个可能愿意退出的不活跃客户。
- 账户余额与性别之间的级联关系表明,性别会影响账户余额,进而间接影响账户流失率。
- 账户增长和高余额变化可能直接影响动荡。没有变化账户增长表明大多数账户停止了业务,从而增加了churn倾向。
通过在改变目标处理的同时保持其他潜在影响不变,我们根据初始假设确定了对churn结果的因果处理影响。线性回归估计表明,效应= - 0.026298对应于客户拥有较高的账户期限时,客户流失概率降低≈2.5%。来检验我们的假设,以便在假设正确的情况下,新的估计效应不应发生显著变化。因此,我们应用随机共同原因(RCC)[20],通过在数据集中加入独立随机变量res random作为共同原因来反驳得到的估计。反驳方法的结果= - 0.026299,与估计结果基本一致。因此,我们可以确认,高客户任期是客户流失结果的一个因果特征的假设是正确的。
治疗对结果的因果影响是基于治疗变量值的变化。这种影响有多强是一个统计估计问题。因果关系的统计估计方法有很多种。本研究采用“基于倾向得分的逆加权”方法[21],并将估计结果和流失率结果归纳在表II中。例如,可变sg recency的平均估计为∼0.15,这相当于说,当客户自超级保证sg缴款的最后一天以来天数增加时,客户流失的概率增加了∼15%。对账户增长变量(∼0.03)的平均估计结果是,当账户增长率为负值时,客户流失的可能性会增加∼3%。提出的框架和结果可视化的python实现,包括hiplot中DFF NN的超参数敏感性分析,以及我们的详细因果分析,可以在GitHub中获得
七.总结
设计了一种新的churn倾向模型,并将其与贝叶斯因果网络相结合。在预处理阶段对不平衡的搅动类和非搅动类进行拉平,然后将提出的DFF神经网络方法与当前10种最佳实践的流失预测分类器的准确率进行比较。尽管XGBoost实现了优越的AUC,但DFF NN在测试数据上获得了与所有考虑的模型相当的AUC,具有最高的精度。
分析了在养老基金公司创建的特定金融数据集可能的客户流失原因。因果分析结果确认了代表最近SG贡献、年度报告偏好改变、账户增长和余额金额的变量,并确定为客户流失的混淆因素,具有较高的可信度。对于拥有活跃账户的客户,流失率可以降低3%。
important coding
1.用于展示数据框每一列的缺失值和唯一值的函数
1 | def summarize_categoricals(df, show_levels=False): |
样例:
1 | import pandas as pd |
输出:
1 | No. of Levels No. of Missing Values |
使用该函数后,输出了一个新的DataFrame,显示了每个列的唯一值数量和缺失值数量。
比如列A有4个唯一值,列B有3个唯一值,列C有3个唯一值但是有1个缺失值。
如果将show_levels设置为True,则Levels列也会显示每个列的唯一值:
1 | Levels No. of Levels No. of Missing Values |