SAP分析云中分类预测模型的预测解读

原文:Prediction Explanations For Classification Predictive Models in SAP Analytics Cloud

原作者:David SERRE

引言

设想一下,有一天您的下属突然向您提出了离职申请,而TA是您团队中的核心成员,您自认为您的团队以及公司已经为员工提供了良好的工作环境,但仍然无济于事。那么,如何防患于未然,通过某些指标预测员工的离职意愿,并有针对性地降低其离职概率呢?我们向您推荐我们的预测功能以及预测解读。

SAP 分析云中的分析功能可以帮助用户根据历史数据预测未来的表现,如“哪些员工有离职的风险?(机器学习中的分类问题)”或“我的票据大概需要多长时间才能付款?(机器学习中的回归问题)”。但是仅仅知道预测结果是不够的,为了采取具体的行动,我们需要更具体的信息来说明是什么导致了这样的预测结果。

比如,SAP 分析云告诉我某个员工的离职概率很高,那我应该采取一些什么措施来留住TA呢?又比如,在预测票据付款的场景里,您可能希望知道哪些操作拖延了付款时间,从而进行一些调整。那么,SAP分析云能不能不仅仅告诉我未来将有可能发生什么,同时还能告诉我为什么?

当然可以了! SAP分析云在 2021 QRC3 的发布中引入了一种称为“预测解读”的功能,以解读智能预测为何生成某些特定的预测结果。

在这篇文章中,您将了解到:

  • 如何解读预测模型产生的预测;
  • 如何使用生成的预测解读构建可视化的视图,如下图所示,进一步帮助您做决策。

预测解读

使用强度测量影响因素的影响

在我们开始解释如何构建这个可视化之前,让我们先了解一下应该如何解读它。

首先,在上面的示例图的左侧,我们选中了员工E1244, 右侧的图表则代表了针对这个员工E1244的离职可能性预测的一组预测解读。

在右侧的图表中,每行展示了一个影响因素(一个解释预测目标的变量)、该员工对应的该影响因素的值以及它们对预测的影响(“强度”)。为了方便起见,我们将这个三元组(影响因素、影响者值、强度)称为预测的“解释”。

强度的绝对值越高,对预测的影响就越大。解释的影响可以是正面的,也可以是负面的:

  • 对于二元预测(分类),正强度的影响因素会增加预测概率,而负强度的影响因素会降低预测概率。
  • 对于数值预测(回归),正强度的影响因素导致更高的预测值,而负强度的影响因素会降低预测值。

因此,上面的例子告诉我们,导致员工E1244离职最有可能的因素是加班;他对公司的环境满意度较低,这一事实也增加了他离职的可能性。相反,也有一些因素,比如他去年股份占比等级,或者他作为研究者的角色等令他对公司比较满意略微降低了离开公司的可能性。

需要强调的是,“强度”是贡献的规范化度量,强度值不取决于目标的数级或单位,因此不能在目标空间中进行解释:

  • 在分类的情况下,强度不是概率(当预测强度总和不等于预测概率时)
  • 在回归的情况下,强度不是预测值的“一部分”(当预测强度总和不等于预测值时)。对于回归模型,还提供了“贡献”值,该值可以解读为预测值的一部分。

强度如何计算

如上所述,强度是解释“影响因素=影响因素值”对于预测的贡献(影响)的规范化表示,计算如下:

其中,strength是影响因素 的强度,contribution是影响因素 对于预测的贡献,是验证集上所有影响因素贡献的标准差。

我们使用SHAP值测量影响因素的贡献。您可以把一个影响因素的SHAP值看作是:如果该影响因素没有被用来生成预测,模型将会丢失的信息量。SHAP值可以是正的,也可以是负的,SHAP值的绝对值越高,影响因素的贡献就越大。

强度离散化

大多数人不会对确切的强度值感兴趣,而是更愿意用与某些颜色编码相关的定性方式来解释强度。

我们建议使用以下的取值范围来对强度进行离散化:

范围
解释对预测的影响
[3; +∞]
强积极影响
[1;3]
中等积极影响
[-1; 1]
低影响(不显著)
[-3; -1]
中等消极影响
[-∞; -3]
强消极影响

这些范围来自哪里?

由于1/𝜎 系数,强度可以解释为与平均值的距离,用“标准偏差数”表示。一个贡献比平均贡献低1个标准差,其强度值为-1,一个贡献比平均贡献高2个标准差,其强度值为2……

在统计学中,通常使用标准偏差作为距离单位来测量到平均值的距离。参考下面的图表,我们可以看到,对于正态分布,多数值(68.2%)与平均值的偏差小于1。这些值与平均值没有显著差异,介于-1和1之间的强度可被视为“中性”,影响既不显著为正,也不显著为负。另一方面,预计只有少数数值会超过3个标准差(数值的0.4%),因此高于3且低于-3的强度可视为强。

积极其他和消极其他

如果提供的信息太多,可能很难对影响预测的因素有一个综合的看法。更多的解释会导致更多的数据点,这些数据点可能更难阅读和解释。因此,我们选择将每次预测产生的解释数量限制在10个。

但一个预测模型显然可以使用10个以上的影响因素。因此,为了遵守10种解释的限制,同时保持提供的信息“完整”,我们引入了“积极其他”和“消极其他”的影响因素。

总的来说,最多有10种解释,包括“积极其他”和“消极其他”产生的影响。根据积极和消极的解释如何平衡,“积极其他”和“消极其他”可能单独存在。因为它们聚集了几个单独的解释,所以“积极其他”和“消极其他”的强度可能是显著的,即使被聚集的单个解释的强度可能很小。

参考我们前面的例子,我们可以看到,与强度3.72相关的是一个“积极其他”产生的影响因素,与强度-3.73相关的是一个“消极其他”产生的影响因素。这意味着:

  • 有大于10个影响因素参与了预测。
  • 一系列对预测有弱积极影响的个体解释已经被聚集成“积极其他”的解释。
  • 一系列对预测有弱负面影响的个体解释已经被聚集成“消极其他”的解释。

如何使用预测解读

场景

我们想采取一些措施来减少公司的人员流失。要做到这一点,我们需要预测哪些员工在未来12个月内有离开公司的风险。但是,为了做出最佳的留任决定,我们还想知道,对于每个预测,是什么原因导致智能预测生成了特定的预测(具体来说,是什么因素增加或减少了该员工离职的可能性)。在案例展示开始之前,我们提供了原始数据集,以供读者复现操作。点击下方的链接,并键入“Ctrl + S”来保存数据集:

  • hr_attrition_2021_training.csv:训练数据集,包含2020年初公司的所有员工。如果员工在2020年底仍在公司工作,目标列“attrition”则为“No”,如果员工在2020年期间离开公司,则为“Yes”。
  • hr_attrition_2021_apply.csv:这个数据集包含了2021年初还在为公司工作的所有员工。这一预测告诉我们,这些员工是否有2021年离职的风险。

生成解释

让我们建立一个智能预测分类模型,数据集和设置如下所示:

现在,我们可以使用“应用预测模型”按钮生成预测。为了确定最有可能离职的员工,我们将生成预测概率。默认情况下,不会生成预测解读,我们必须启用该选项。那么,让我们在统计和预测部分启用预测解读选项。最后,我们点击“应用”生成预测。

设置员工选择器

首先,我们创建一个故事:

让我们在一个故事中导入训练数据集。我们想在表格中看到最有可能离开公司的员工名单。此表将允许我们选择特定的员工,并获得该员工预测的解释。

我们只需要在度量选择器中选择预测概率度量。在这个阶段,您应该看到下面的表格。

我们想让这张表格充当选择器。在SAP分析云中实现这一点的方法是使用“链接分析”选项。

设置解读可视化

现在,让我们设置解释可视化。在一个故事中,有很多方法可以让您可视化预测解读。在这篇文章中,我们将把预测解读可视化为一个条形图。设置如下所示:

  • 衡量标准:解释强度;
  • 维度:解释影响因素和影响因素值。

最后,在之前创建的表中选择一名特定员工。您现在可以看到下面的条形图了。

添加颜色强度编码

故事的使用者可能不知道应该如何解释强度值。添加一些用户友好的离散化和颜色编码将使解释更容易被每个人接受。

首先,让我们为可视化添加一个“阈值”。

选择解释强度作为阈值度量,并定义如下阈值:

展示效果如下:

根据这个可视化的“预测解读”,您可以简单的判断TA为什么有可能离职,并采取相应措施。请注意,根据智能预测分类算法的发展,结果(强度值和影响因素顺序)可能会有所不同,因此您可能看不到与上图显示的完全相同的结果。

结语

在这篇博文中,您学习了如何利用预测解读,更好地理解分类模型在个人层面上的预测。根据这一功能,您可以获得很多有用的结论。David SERRE的另一篇文章解释了如何利用回归模型的预测解读,并将预测解读显示为瀑布图。

希望这篇博文对您有所帮助。如果您喜欢这篇文章,欢迎留下评论和您的点赞,非常感谢。

更多关于SAP Analytics Cloud的使用技巧,请关注话题标签:SAP Analytics Cloud

想要全面了解如何使用SAP Analytics Cloud 进行预测计划,欢迎阅读中文官方指南:SAP Analytics Cloud 中文帮助手册