如何将机器学习与敏感性分析相结合来制定业务策略?
数不清的企业通常使用机器学习(ML)来辅助决策。但是,在大多数情况下,机器学习系统做出的预测和业务决策仍然需要人类用户的直觉来做出判断。
在本文中,我将展示如何将ML与敏感性分析结合起来以开发数据驱动的业务策略。这篇文章重点关注客户流失,同时涵盖了使用基于ML的分析时经常出现的问题。这些问题包括处理不完整和不平衡的数据,推导模型选择以及定量评估这些选择的潜在影响方面的困难。
具体来说,我使用ML识别可能流失的客户,然后将特征重要性与方案分析结合使用以得出定量和定性的建议。然后,组织可以使用结果来做出适当的战略和战术决策,以减少未来的客户流失。该用例说明了数据科学实践中出现的几个常见问题,例如:
- 低信噪比,特征与流失率之间缺乏明确的相关性
- 高度不平衡的数据集(其中90%的客户不流失)
- 使用概率预测和调整来确定决策机制,以很大程度地减少对客户流失问题进行过度投资的风险
端到端实施代码可在Amazon SageMaker中使用,也可以在Amazon EC2上独立使用。
在这种用例中,我考虑一家提供不同类型产品的虚构公司。我将其两个主要产品称为产品A和B。我仅了解有关该公司产品和客户的部分信息。该公司最近发现客户流失有所增加。数据集包含有关数以千计的客户的不同属性的信息,这些信息是在几个月内收集和分类的。这些客户中有一些已经流失了,有些还没有。通过使用特定客户列表,我将预测任何一个人流失的可能性。在此过程中,我尝试回答几个问题:我们能否创建一个可靠的客户流失预测模型?哪些变量可以解释客户流失的可能性?公司可以采取哪些策略来减少客户流失?
这篇文章将介绍使用ML模型创建减少客户流失策略的以下步骤:
1. 探索数据和设计新功能
我首先介绍如何通过查看各个输入要素与客户流失标签之间的简单关联来探索客户数据。我还研究了特征之间的关联(称为互相关或协方差)。这使我能够做出算法决策,尤其是确定那些特征需要派生,更改或删除。
2. 开发一组ML模型
然后,我建立了多个机器学习算法,包括自动特征选择,并结合了多个模型来提高性能。
3. 评估和完善ML模型的性能
在第三部分中,我测试了我开发的不同模型的性能。从这里,我确定了一种决策机制,该机制可以将高估客户流失数量的风险降到很低。
4. 将ML模型应用于业务策略设计
最后,在第四部分中,我将使用ML结果来了解影响客户流失的因素,得出特征选择并量化评估这些选择对客户流失率的影响。我通过执行敏感性分析来做到这一点,在该分析中,我修改了在现实生活中可以控制的一些因素(例如折现率),并预测了针对该控制因素的不同值预期的客户流失率的相应降低幅度。所有预测都将使用第3节中确定的优秀ML模型进行。
探索数据和建立新的特征
在ML模型开发期间经常出现问题的关键问题包括输入数据中共线和低方差特征的存在,离群值的存在以及数据的丢失(缺少特征和某些特征的值)。本节介绍如何使用Amazon SageMaker处理Python 3.4中的每个问题。(我还通过深度学习AMI在Amazon EC2实例上评估了独立代码。两者都可用。)
这种带有时间戳的数据可以在某些指标内包含重要的模式。我将这些指标分为每日,每周和每月的细分,这使我能够开发新功能来说明指标的动态性质。
然后,我研究原始特征和新特征之间每个简单的一对一(也称为边际)关联和关联度量。我还研究了特征与客户流失标签之间的相关性。(请参见下图)。
可以通过使用边际相关和Hamming / Jaccard距离来处理低方差特征(当流失标签更改时不会显着变化的特征),如下表所示。Hamming / Jaccard距离是专门为二进制结果设计的相似性度量。这些措施提供了一个观点,即每个特征对客户流失提供了多大程度的信息。
删除低方差特征是个好习惯,因为无论是要预测什么,它们都不会发生明显变化。因此,它们的存在不能帮助进行分析,并且实际上会使学习过程效率降低。
下表显示了特征和客户流失之间的最高相关性和二进制差异。48个原始特征和派生特征中仅显示最重要的特征。“ Filtered“列包含对异常值和缺失值进行数据过滤时获得的结果。
上表的主要结论是,三个销售渠道似乎与客户流失成反比,并且与客户流失的大多数边际相关性很小(≤0.1)。对异常值和缺失值应用过滤器会改善边际相关的统计显着性。上表的右列描述了这种效果。
共线特征的问题可以通过计算所有特征之间的协方差矩阵来解决,如下图所示。该矩阵为判断某些特征具有的冗余量提供了新的角度。删除冗余特征是一个好习惯,因为它们会产生偏差并需要更多的计算量,这会使学习过程效率降低。
上图中的左图表示某些特征(例如价格和某些预测指标)是共线的,其中ρ> 0.95。设计下一节中描述的ML模型时,我只保留了其中的一个,这给了我留下了大约30个特征,如上图中的右图所示。
缺失和异常数据的问题通常通过经验规则来处理,例如在缺少某些记录数据值或它们超过样本标准差的三倍时删除观察值(客户)。
由于数据缺失是一种常见的问题,你可以使用样本或总体的均值或中位数来估算缺失值,作为删除观测值的替代方案。那就是我在这里所做的:我删除了缺失超过40%以上的特征,并将剩下每个特征的缺失值替换为中位数。读者应注意,一种更高级的,优秀实践的缺失数据填补方法是训练一种基于其他特征的监督学习模型,但是这可能需要大量的工作,因此在此不做介绍。当我在数据中遇到异常值时,我删除了那些数值超过均值六倍标准差的客户。总共删除了16096个观察结果中的140个(<1%)。
开发一组ML模型
在本节中,我将开发和组合多个ML模型以利用多种ML算法的功能。集成建模还可以使用整个数据集中的信息,即使流失标签的分布高度不平衡,如以下流程图所示。
作为删除低方差特征的一种很好的做法,我通过应用一个快速简单的方差过滤器进一步将特征空间限制为最重要的特征。此过滤器会删除对95%的客户不显示差异的特征。为了根据特征对客户流失的综合影响(而不是边际影响)筛选特征,我使用了带有逐步回归的网格搜索,进行了基于ML的特征选择。请参阅下一节的详细信息。
在实现ML模型之前,我将数据随机分为两组,并确定了30%的测试集。就像在下一节中讨论的那样,我还在70%/30%拆分的基础上使用了10倍交叉验证。K-folding是一个迭代周期,可以对K个评估的平均性能进行平均,每个测试都针对单独的K%保留数据集。
分别训练了三种ML算法(逻辑回归,支持向量机和随机森林),然后将它们组合在一起,如前面的流程图所示。集成方法在文献中称为”软投票”,因为它采用了不同模型的平均概率并将其用于客户分类(在前面的流程图中也可以看到)。
客户流失率仅占数据的10%;因此,数据集是不平衡的。我测试了两种解决类别不平衡的方法。
- 在第一种最简单的方法中,训练是基于对丰富类(没有流失的客户)的随机抽样来进行的,以匹配稀有类(有流失的客户)的规模。
- 在第二种方法中(如下图所示),我将训练基于模型的集合,其中每个模型使用9个丰富类的随机样本(不进行替换)和稀有类的一个完整样本。我之所以选择9倍,是因为类别的不平衡程度大约是1比9(如下图的直方图所示)。因此,1-9是使用丰富类中的全部或几乎所有数据所需的采样量。这种方法比较复杂,但是会使用所有可用信息,从而提高了通用性。我将在以下面章节中评估其有效性。
对于这两种方法,在测试集上考虑实际情况而保持类的不平衡来评估模型性能。
评估和完善ML模型的性能
在本节中,我测试了上一节中开发的不同模型的性能。然后,我确定了一种决策机制,该机制很大程度地降低了高估可能流失的客户数量的风险(称为误报率)。
在ML性能评估中经常使用所谓的接收算子特性(ROC)曲线来补充列联表。当更改概率阈值以推断正类别和负类别(在此项目中,分别为流失类和非流失类)时,ROC曲线提供了准确性的不变度量。它涉及绘制所有准确的阳性预测(真阳性)与假阳性的图表。请参阅下表。
默认情况下,将对不同ML模型预测的概率进行校准,以使p> 0.5的值对应一个类别,而p <0.5的值对应另一类别。此阈值是一个超参数,可以对其进行微调以很大程度地减少一类的错误分类。这是以增加另一种错误分类为代价的,这会影响不同性能指标的准确性和精确度。相比之下,ROC曲线下的面积是性能的不变度量,在任何阈值下都保持不变。
下表描述了使用稀有类9倍训练总体的不同ML模型的性能。您可以看到随机森林具有优秀性能,并且9倍总体的综合性更好,ROC AUC得分为0.68。这个模型是表现较好的。
下图描述了整体优秀模型的表现(9倍总体的随机森林模型)以及对精度和误差的优化。当使用概率阈值0.5时,最好的结果可以准确预测69%的流失客户。
查看ROC曲线,您可以看到同一模型可以准确预测30%的客户流失,而将非流失客户预测为流失客户的概率为10%。使用网格搜索,我发现阈值为p = 0.56。如果您想很大程度地减少高估会流失客户数量的风险(例如,由于我们为保留这些客户而进行的活动可能会成本很高),则可能要使用此模型。
将ML模型应用于业务策略设计
在本节中,我将使用我开发的ML模型来更好地理解影响客户流失的因素,得出减少流失的特征选择,并评估这些选择可能对流失率产生的影响。
考虑到特征对客户流失的综合影响,我使用了逐步逻辑回归来评估特征的重要性。如下图所示,回归确定了12个关键特征。当我在回归模型中包含这12个特征时,预测得分较高。
在这12个因素中,净利润率,产品A和产品B的预计购买量以及多个产品客户的指标是最容易引起客户流失的特征。减少客户流失的因素包括三个销售渠道,一个营销活动,折扣价值,总体订购额,客户忠诚度以及购买的产品总数。
因此,向最易流失的客户提供折扣似乎是一种简单有效的策略。当然还有其他战略手段,包括增强A和B以外的产品,销售渠道1-3,营销活动和长期合同之间的协同作用。根据数据,利用这些手段可能会减少客户流失。
最后,我使用了敏感性分析:我对ML模型确定为可能流失的客户应用了高达40%的折扣,然后重新运行该模型以评估合并了折扣后预计会有多少客户流失。
当我将模型的p阈值设置为0.6以使损失最小化至10%时,我的分析预测20%的折扣会减少25%的客户流失。假设在此阈值下的真阳率约为30%,这个分析表明采用20%的折扣方法可以消除至少8%的客户流失。有关详细信息,请参见下图。折扣策略是遇到客户流失的企业可以考虑采取的缓解问题的简单的第一步。
结论