用于预测的特征归因

简介

本页面从概念上简要介绍了 Vertex AI 提供的特征归因方法。如需查看对技术的深入讨论,请参阅 AI Explanations 白皮书

全局特征重要性(模型特征归因)显示每个特征对模型的影响程度。这些值是以每个特征的百分比形式提供的:百分比越高,特征对模型训练的影响就越大。例如,在查看模型的全局特征重要性后,您可能会得出以下结论:“该模型发现,上个月的销售数据通常是下个月销售数据的最强预测指标。虽然客户数量和促销等因素很重要,但它们对销售数据的影响较小。”

如需查看模型的全局特征重要性,请检查评估指标

时序模型的局部特征归因指出了模型中每个特征对预测结果的影响程度。它们衡量特征相对于输入基准的预测结果。对于销售等数值特征,基准输入为销售额中位数。对于产品名称等分类特征,基准输入是最常见的产品名称。所有归因的总和不是预测。总和表示预测与基准预测的差异(即所有输入都是基准输入)。

特征归因根据针对反事实的预测确定。示例预测如下:如果 2020-11-21 上的 TRUE 的通告值已替换为 FALSE(最常见的值),则预测会是什么?所需的反事实数量根据列数和路径数(生成的服务)进行扩缩。生成的预测数量可能比正常的预测任务大几个数量级,并且预期的运行时间会相应地扩缩。

您可以借助使用 AutoML 进行预测预测表格工作流生成和查询局部特征归因。“使用 AutoML 进行预测”仅支持批量预测。“预测表格工作流”支持批量预测在线预测

优点

如果您在训练数据集中检查特定实例并汇总特征归因,就可以更深入地了解模型的工作原理。请考虑以下优点:

  • 调试模型:特征归因有助于检测出数据中通常被标准模型评估技术忽略的问题。

  • 优化模型:您可以识别和移除不太重要的特征,从而生成更有效率的模型。

概念限制

请考虑特征归因的以下限制:

  • 特征归因(包括 AutoML 的本地特征重要性)特定于个别预测。检查个别预测结果的特征归因可能会提供有用的见解,但对于该实例的整个类或整个模型来说,该见解可能不具备概括性。

    如需获得更通用的 AutoML 模型数据分析,请参阅模型特征重要性。如需获得针对其他模型的更多数据洞见,请通过数据集内的子集或整个数据集聚合归因。

  • 每个归因只会反映特征对该特定样本的预测结果的影响程度。单一归因可能无法反映模型的总体行为。如需了解模型在处理整个数据集方面的大致行为,请对整个数据集进行归因汇总。

  • 虽然特征归因有助于调试模型,但它们无法保证总能清楚指出问题是由模型引起的,还是由训练模型所采用的数据引起的。您必须尽量正确地做出判断,并诊断常见的数据问题,以筛查出可能的原因。

  • 归因完全取决于模型以及用于训练该模型的数据。它们只能展示模型在数据中发现的模式,而无法检测到数据中的任何基本关系。某个特征是否存在强有力的归因并不意味着该特征与目标之间是否存在关系。归因只是表明模型是否在其预测中使用该特征。

  • 您不能仅凭归因,就判断模型是否公平、无偏差或可靠。除了相应归因之外,您还要仔细评估训练数据和评估指标。

如需详细了解限制,请参阅 AI Explanations 白皮书

改善特征归因

以下因素对特征归因的影响最大:

  • 归因方法只会大致估计 Shapley 值。您可以通过增加采样 Shapley 方法的路径数来提高近似值的精确率。因此,归因可能会发生巨大变化。
  • 归因只能表明相对于基准值,特征对预测值变化的影响程度。请确保选择有意义的基准,该基准应与您向模型询问的问题相关。归因值及其解释可能会随着基准的改变而发生显著变化。

您可以在说明参数和元数据中查看路径计数和基准。

查看说明元数据和参数

说明参数和元数据包含以下内容:

  • static_value:用于生成说明的基准
  • pathCount路径数,即生成特征归因所需时间量的一个因素。
  • historical_valuesprediction_values:预测时可用的列。
  • historical_values:预测时的列不可用。

该模型可以使用 Vertex AI REST API 查看,且包含说明规范。

REST

在使用任何请求数据之前,请先进行以下替换:

  • LOCATION:存储模型的区域
  • PROJECT:您的项目 ID
  • MODEL_ID模型资源的 ID

HTTP 方法和网址:

GET https://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT/locations/LOCATION/models/MODEL_ID

如需发送请求,请选择以下方式之一:

curl

执行以下命令:

curl -X GET \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
"https://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT/locations/LOCATION/models/MODEL_ID"

PowerShell

执行以下命令:

$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }

Invoke-WebRequest `
-Method GET `
-Headers $headers `
-Uri "https://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT/locations/LOCATION/models/MODEL_ID" | Select-Object -Expand Content

AutoML 模型训练完成后,您应该会看到类似如下所示的输出。

算法

Vertex AI 使用 Shapley 值提供特征归因,这是一种合作博弈论算法,用于根据游戏结果为特定玩家分配积分。应用到机器学习模型中,就意味着每个模型特征都被视作游戏中的一个“玩家”,积分按特定预测结果的比例分配。对于结构化数据模型,Vertex AI 使用精确 Shapley 值的采样近似值,称为采样 Shapley

如需深入了解采样的 Shapley 方法的工作原理,请参阅论文《限定采样 Shapley 值逼近法的估计误差》

后续步骤

以下资源提供了更多有用的教育材料: