跳到主要内容 跳到补充内容

在预测期间生成 SHAP 数据集

SHAP 重要性数据集可以在运行预测时生成。您可以使用这些数据集中的 SHAP 计算来了解哪些特性是预测值的最重要贡献者。

SHAP 数据集包含用于训练模型的特性的行级 SHAP 计算。这些值表示在给定该行的所有其他特性的情况下,每个特性对目标的预测值的贡献程度。

例如,SHAP 重要性可以告诉我们某个特征是否会让客户或多或少地流失,以及它对结果的影响有多大。

运行预测并生成数据集后,可以将 SHAP 值加载到 Qlik Sense 应用程序中,并将其与预测值一起可视化。有关更多详细信息,请参阅 在 Qlik Sense 应用程序中可视化 SHAP 值在实际应用中使用 SHAP 值。

本帮助主题侧重于 ML 部署预测期间的 SHAP 数据集生成。有关实验训练期间显示的 SHAP 重要性图表的信息,请参阅实验训练中的 SHAP 重要性

用于生成 SHAP 数据集的可用选项

配置预测时,可以选择以两种不同的格式生成 SHAP 数据集。两个选项都提供相同的信息,但其结构不同。

SHAP

这是一个数据集,其中每个特性的 SHAP 值被分为一列。此选项不适用于多类别分类模型。

坐标 SHAP

这是一个数据集,其中所有 SHAP 值的结构仅包含在两列中:“feature”列和“value”列。此选项适用于所有模型类型。

与二进制模型的数据集相比,多类模型中的数据集的工作方式略有不同。对于每个要预测的记录,都会创建一个新行,其中包含可由模型预测的每个可能类的 SHAP 值。在数据集中,还会创建一个额外的列来标识 SHAP 值所表示的类。

当将预测和 SHAP 值加载到 Qlik Sense 应用程序中并创建数据模型时,坐标 SHAP 数据集可能比 SHAP 数据集中更容易使用。

示例

下表包含 SHAP 和坐标 SHAP 数据集的样本,这些数据集是通过基于五个特性训练的回归模型生成的。示例包含应用数据集中两条记录的 SHAP 值(对应于两个帐户 ID)。

这些示例突出了数据结构之间的差异。

SHAP dataset sample
AccountID AdditionalFeatureSpend_SHAP Churned_SHAP CurrentPeriodUsage_SHAP HasRenewed_SHAP NumberOfPenalties_SHAP
aa16889 1.76830971241 -0.58154511451721 -1.106874704361 -0.36080026626587 3.6597540378571
aa33396 0.80359643697739 -0.64805734157562 0.076582334935665 0.38967734575272 -0.31007811427116
Coordinate SHAP dataset sample
AccountIDautoml_featureSHAP_value
aa16889AdditionalFeatureSpend1.76830971241
aa16889Churned-0.58154511451721
aa16889CurrentPeriodUsage-1.106874704361
aa16889HasRenewed-0.36080026626587
aa16889NumberOfPenalties3.6597540378571
aa33396AdditionalFeatureSpend0.80359643697739
aa33396Churned-0.64805734157562
aa33396CurrentPeriodUsage0.076582334935665
aa33396HasRenewed0.38967734575272
aa33396NumberOfPenalties-0.31007811427116

解释 SHAP 预测值

与实验训练期间显示的 SHAP 重要性图中的值不同,SHAP 数据集包含具有方向性的行级 SHAP 计算。换句话说,它们不是绝对值,而是可以是正值或负值。在应用程序中可视化值时,可以根据您的用例选择将它们聚合为绝对值。

应该根据该记录的相应预测值来分析该记录的 SHAP 值。根据模型类型(二元分类、多类分类或回归),对 SHAP 值的方向性的解释应略有不同。

分类模型

对于二元分类模型,高的正 SHAP 值表示对两种可能结果中的一种的影响更大,而高的负值表示对另一种结果的影响较大。在应用程序中使用数据时,SHAP 值的方向性可能不允许进行所需的分析。要解决此问题,可以反转 SHAP 值的方向(例如,将整列乘以 -1)。有关 SHAP 方向检查的更多信息,请参阅准备工作

来自多类模型的 SHAP 数据集的结构不同。对于要预测的每个记录,它为每个可能的类包括一个单独的行,以及该类的相应 SHAP 值。该类在“Predicted_class”列中指定。

在坐标 SHAP 数据集中,按如下方式解释来自多类模型预测的 SHAP 值:

  • 较高的正 SHAP 值表示该特性对结果为指定的“Predicted_class”具有较大的影响。

  • 较高的负 SHAP 值表示该特性对结果不为指定的“Predicted_class”具有较大的影响。

示例

以下示例演示了二进制和多类分类模型输出之间数据集结构的差异。

假设我们从每个帐户 ID 包含一行的应用数据集开始。训练模型的每个特性都表示为一个单独的列。

单个帐户 ID 记录如下所示:

Single record from a dataset on which predictions will be generated
AccountIDAdditionalFeatureSpendBaseFeeCurrentPeriodUsageHasRenewedNumberOfPenalties
aa1688918 33.52210.1yes4

如果我们训练一个二元分类模型来预测 Churned 字段的结果,就会有两种可能的结果:“是”或“否”。基于上面的单个帐户 ID 记录,该记录的坐标 SHAP 数据集如下所示:

Sample from coordinate SHAP dataset for binary classification model prediction
AccountIDautoml_featureSHAP_value
aa16889AdditionalFeatureSpend-0.049129267835076
aa16889BaseFee-1.5363064624041
aa16889CurrentPeriodUsage0.10787960191299
aa16889HasRenewed1.2441783315923
aa16889NumberOfPenalties2.3803616183224

在上表中,显示了单个帐户 ID 的 SHAP 值,并按特性进行了细分。将为每个特性创建一个新行,并为每个特性指定一个 SHAP 值。必须根据两种可能的结果来评估这些 SHAP 值的方向和大小。理想情况下,SHAP 值越高,特性对积极解释结果的影响就越大(在这种情况下为“是”)。如果该表示相反,则可以反转 SHAP 值的方向(将其乘以 -1),以使分析更易于解释。

为了进行比较,假设我们训练一个多类分类模型来预测分类 PlanType 字段(有四种可能的结果 'Blue Plan'、'Green Plan'、'Purple Plan' 和 'Red Plan')。基于第一个表格中的单个帐户 ID 记录,该记录的坐标 SHAP 数据集如下所示:

Sample from coordinate SHAP dataset for multiclass classification model prediction
AccountIDautoml_featurePredicted_classSHAP_value
aa16889AdditionalFeatureSpendBlue Plan0.004155414339679
aa16889AdditionalFeatureSpendGreen Plan0.0066376343942741
aa16889AdditionalFeatureSpendPurple Plan-0.014411468558894
aa16889AdditionalFeatureSpendRed Plan0.003618419824941
aa16889BaseFeeBlue Plan0.089301017079318
aa16889BaseFeeGreen Plan0.28876498452748
aa16889BaseFeePurple Plan0.055689421438434
aa16889BaseFeeRed Plan-0.43375542304524
aa16889CurrentPeriodUsageBlue Plan-0.0040098954629816
aa16889CurrentPeriodUsageGreen Plan-0.27902537442842
aa16889CurrentPeriodUsagePurple Plan-0.21871561841248
aa16889CurrentPeriodUsageRed Plan0.50175088830388
aa16889HasRenewedBlue Plan-0.011878031228962
aa16889HasRenewedGreen Plan0.036835618725654
aa16889HasRenewedPurple Plan0.13798314881109
aa16889HasRenewedRed Plan-0.16294073630778
aa16889NumberOfPenaltiesBlue Plan0.20519095034486
aa16889NumberOfPenaltiesGreen Plan0.0015682625647107
aa16889NumberOfPenaltiesPurple Plan-0.084355421853302
aa16889NumberOfPenaltiesRed Plan-0.12240379105627

在上表中,单个帐户 ID 由 20 个单独的行表示:一行用于每个特性,一行用于对应于目标中每个可能结果的 SHAP 值。Predicted_class 列表示要预测的可能结果(类),而不一定是预测数据集中显示的实际预测结果。最终,具有最高 SHAP 值的类成为记录的预测值。

此表中的 SHAP 值是指定特征 (automl_feature) 对可能是指定类 (Predicted_class) 的结果的影响的测量值。高的正值表示该特性强烈影响预测结果成为指定类别,而高的负值表示该特性有力影响预测结果不成为指定类别。

回归模型

在从回归模型生成的 SHAP 数据集中,SHAP 值的方向更易于解释。

  • 正的 SHAP 值对应于该行的预测值的增大。

  • 负的 SHAP 值对应于该行的预测值的减小。

计算 SHAP 值

为各种算法计算 SHAP 值。 SHAP importance 使用两种不同的方法计算:

  • 树形 SHAP:一种快速准确的方法,用来估计树模型的 SHAP 值:

  • 线性 SHAP:一种计算线性模型 SHAP 值的方法

按模型类型和 SHAP 计算方法划分的可用算法
算法支持的模型类型SHAP 计算方法
随机森林分类 二分类、多类别分类树形 SHAP
XGBoost 分类二分类、多类别分类树形 SHAP
LightGBM 分类二分类、多类别分类树形 SHAP
Catboost 分类二分类、多类别分类树形 SHAP
逻辑回归二分类、多类别分类线性 SHAP
套索回归二分类、多类别分类线性 SHAP
弹性网回归二分类、多类别分类线性 SHAP
高斯朴素贝叶斯二分类、多类别分类未计算 SHAP
Catboost 回归回归树形 SHAP
LightGBM 回归回归树形 SHAP
线性回归回归线性 SHAP
随机森林回归回归树形 SHAP
SGD 回归回归线性 SHAP
XGBoost 回归回归树形 SHAP

了解详情

本页面有帮助吗?

如果您发现此页面或其内容有任何问题 – 打字错误、遗漏步骤或技术错误 – 请告诉我们如何改进!