可解释性 Forecast - Amazon Forecast

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

可解释性 Forecast

注意

Forecast 可解释性仅适用于从 AutoPredictor 生成的预测。您可以将现有的旧预测变量升级到 AutoPredictor。请参阅升级到 AutoPredictor.

Forecast 可解释性有助于您更好地了解数据集中的属性如何影响特定时间序列(项目和维度组合)和时间点的预测。Forecast 使用名为 “影响力分数” 的指标来量化每个属性的相对影响,并确定它们是增加还是减少预测值。

例如,考虑目标所在的预测方案sales还有两个相关的属性:pricecolor. Forecast 可能会发现,商品的颜色对某些商品的销售影响很大,但对其他商品的影响微不足道。它也可能会发现,夏季的促销对销售有很大的影响,但冬季的促销效果微乎其微。

要启用 Forecast 可解释性,您的预测变量必须至少包含以下一项:相关时间序列、项目元数据或其他数据集,如假期和天气指数。

要查看数据集中所有时间序列和时间点的聚合影响力分数,请使用 Forecast 变量可解释性而不是预测可解释性。请参阅可解释性预测器.

Python 笔记本

对于 step-by-step 关于 Forecast 可解释性的指南,请参阅项目级可解释性.

解释影响力分数

影响分数衡量属性对预测值的相对影响。例如,如果 “价格” 属性的影响分数是 “店铺位置” 属性的两倍,则可以得出结论,商品价格对预测值的影响是商店位置的两倍。

影响分数还提供有关属性是增加还是减少预测值的信息。在控制台中,这由两个图表表示。带蓝色条的属性会增加预测值,而带有红色条形的属性会减少预测值。

需要注意的是,影响分数衡量属性的相对影响,而不是绝对影响。因此,影响分数不能用于确定特定属性是否提高模型准确性。如果属性的影响得分较低,这并不一定意味着它对预测值的影响较小;这意味着它对预测值的影响低于预测变量使用的其他属性。

所有或部分影响分数可能为零。如果要素对预测值没有影响,则可能会发生这种情况, AutoPredictor 仅使用非 ML 算法,或者您没有提供相关的时间序列或项目元数据。

对于 Forecast 可解释性,影响力分数有以下两种形式:标准化的影响分数和原始影响分数。原始影响力分数基于 Shapley 值,不进行缩放或限制。标准化影响分数将原始分数缩放到 -1 和 1 之间的值。

原始影响力分数对于组合和比较不同可解释性资源的分数非常有用。例如,如果您的 Forecast 变量包含 50 多个时间序列或超过 500 个时间点,则可以创建多个预测可解释性资源以涵盖更多的时间序列或时间点的组合数,并直接比较属性的原始影响分数。但是,来自不同 Forecast 的预测可解释性资源的原始影响分数并不直接可比。

在控制台中查看影响分数时,您将只能看到标准化的影响分数。导出可解释性将为您提供原始分数和标准化分数。

创建 Forecast 可解释性

借助 Forecast 可解释性,您可以探索属性如何影响特定时间点上特定时间序列的预测值。指定时间序列和时间点后,Amazon Forecast 仅计算那些特定时间序列和时间点的影响分数。

您可以使用软件开发工具包 (SDK) 或亚马逊 Forecast 控制台为预测变量启用预测可解释性。使用 SDK 时,请使用创建可解释性operation.

指定时间序列

注意

时间序列是项目 (item_id) 和数据集中所有维度的组合

当您为 Forecast 可解释性指定时间序列(商品和维度组合)时,Amazon Forecast 仅计算那些特定时间序列属性的影响分数。

要指定时间序列表,请将通过 item_id 和维度值标识时间序列的 CSV 文件上传到 S3 存储桶。您可以指定最多 50 个时间序列。还必须在架构中定义时间序列的属性和属性类型。

例如,零售商可能想知道促销如何影响特定商品的销售(item_id) 在特定商店位置(store_location)。在此用例中,您需要指定时间序列,该时间序列是 item_id 和 store_location 的组合。

以下 CSV 文件选择以下五个时间序列:

  1. 商品编号:001,商店 _ 位置:Seattle

  2. 商品编号:001,商店 _ 位置:纽约

  3. item_ID:002,商店 _ 位置:Seattle

  4. item_ID:002,商店 _ 位置:纽约

  5. item_ID:003,商店 _ 位置:丹佛

001, Seattle 001, New York 002, Seattle 002, New York 003, Denver

模式将第一列定义为item_id第二栏为store_location.

您可以使用 Forecast 控制台或 Forecast 软件开发工具包 (SDK) 指定时间序列。

Console

为 Forecast 可解释性指定时间序列

  1. 登录到AWS Management Console在处打开 Amazon Forecast 控制台https://console.aws.amazon.com/forecast/.

  2. 数据集组中,选择您的数据集组。

  3. 在导航窗格中,选择 Insights

  4. 选择创建可解释性.

  5. 可解释性名称字段中,为 Forecast 可解释性提供唯一名称。

  6. 选择预测字段中,选择你的预测。

  7. S3 位置字段中,输入包含您的时间序列文件的位置。

  8. 数据架构字段中,设置属性名称属性类型时间序列中使用的商品编号和尺寸。

  9. 选择创建可解释性。

SDK

为 Forecast 可解释性指定时间序列

使用创建可解释性操作,请为 ExplainabilityName 并为 ResourceArn 提供你的预测 ARN。

配置以下数据类型:

  • ExplainabilityConfig-设置值 TimeSeriesGranularity 到 “特定” 和 TimePointGranularity 改为 “所有”。(要指定时间点,请设置 TimePointGranularity 到 “具体”。 请参阅指定时间点

  • S3Config-将 “路径” 的值设置为时间序列文件的 S3 位置,将 “RoleArn” 设置为具有 S3 存储桶访问权限的角色。

  • Schema-为 item_id 和时间序列中的维度定义 “AttributeName” 和 “Attribute Type”。

下面的示例显示了使用 “item_id” 和 “store_location” 维度组合的时间序列架构。

{ "ExplainabilityName" : [unique_name], "ResourceArn" : [forecast_arn], "ExplainabilityConfig" { "TimeSeriesGranularity": "SPECIFIC", "TimePointGranularity": "ALL" }, "DataSource": { "S3Config": { "Path": [S3_path_to_file], "RoleArn":[role-to-access-s3-bucket] } }, "Schema": { "Attributes": [ { "AttributeName": "item_id", "AttributeType": "string" }, { "AttributeName": "store_location", "AttributeType": "string" } ] }, }

指定时间点

注意

如果你没有指定时间点 ("TimePointGranularity": "ALL"),在计算影响力分数时,Amazon Forecast 将考虑整个预测展望期。

当您为 Forecast 可解释性指定时间点时,Amazon Forecast 会计算该特定时间范围内属性的影响分数。您可以在预测展望期内指定最多 500 个连续时间点。

例如,零售商可能想知道自己的属性如何影响冬季的销售。在此用例中,他们将指定仅跨越预测展望期中的冬季期间的时间点。

您可以使用 Forecast 控制台或 Forecast 软件开发工具包 (SDK) 指定时间点。

Console

为 Forecast 可解释性指定时间序列

  1. 登录到AWS Management Console在处打开 Amazon Forecast 控制台https://console.aws.amazon.com/forecast/.

  2. 数据集组中,选择您的数据集组。

  3. 在导航窗格中,选择 Insights

  4. 选择创建可解释性.

  5. 可解释性名称字段中,为 Forecast 可解释性提供唯一名称。

  6. 选择预测字段中,选择你的预测。

  7. S3 位置字段中,输入包含您的时间序列文件的位置。

  8. 数据架构字段中,设置属性名称一个属性类型时间序列中使用的商品编号和尺寸。

  9. 持续时间字段中,指定日历中的开始日期和结束日期。

  10. 选择创建可解释性。

SDK

为 Forecast 可解释性指定时间序列

使用创建可解释性操作,请为 ExplainabilityName 并为 ResourceArn 提供你的预测 ARN。设置开始日期 (StartDateTime) 和结束日期 (EndDateTime) 使用以下时间戳格式:yyyy-MM-ddTHH:mm:ss(示例:2015-01-01T20:00:00)。

配置以下数据类型:

  • ExplainabilityConfig-设置值 TimeSeriesGranularity 到 “特定” 和 TimePointGranularity 到 “具体”。

  • S3Config-将 “路径” 的值设置为时间序列文件的 S3 位置,将 “RoleArn” 设置为具有 S3 存储桶访问权限的角色。

  • Schema-为 item_id 和时间序列中的维度定义 “AttributeName” 和 “Attribute Type”。

下面的示例显示了使用 “item_id” 和 “store_location” 维度组合的时间序列架构。

{ "ExplainabilityName" : [unique_name], "ResourceArn" : [forecast_arn], "ExplainabilityConfig" { "TimeSeriesGranularity": "SPECIFIC", "TimePointGranularity": "SPECIFIC" }, "DataSource": { "S3Config": { "Path": [S3_path_to_file], "RoleArn":[role-to-access-s3-bucket] } }, "Schema": { "Attributes": [ { "AttributeName": "item_id", "AttributeType": "string" }, { "AttributeName": "store_location", "AttributeType": "string" } ] }, "StartDateTime": "string", "EndDateTime": "string", }

可视化 Forecast 性

在控制台中创建 Forecast 可解释性时,Forecast 会自动显示您的影响力分数。使用创建 Forecast 可解释性时创建可解释性操作,设置EnableVisualization改为 “true”,该可解释性资源的影响分数将在控制台内可视化。

影响分数可视化为从创建可解释性之日起的 30 天。要重新创建可视化,请创建新的 Forecast 可解释性。

导出 Forecast 可解释性

注意

导出文件可以直接从数据集导入返回信息。如果导入的数据包含公式或命令,这会使文件容易受到 CSV 注入的影响。因此,导出的文件可能会提示安全警告。为避免恶意活动,请在读取导出的文件时禁用链接和宏。

通过 Forecast,您可以将影响分数的 CSV 文件导出到 S3 位置。

导出包含指定时间序列的原始和标准化影响分数,以及所有指定时间序列和所有指定时间点的标准化聚合影响分数。如果您没有指定时间点,则预测展望期中所有时间点的影响分数已经聚合在一起。

您可以使用亚马逊 Forecast 软件开发工具包 (SDK) 和 Amazon Forecast 控制台导出 Amazon Forecast 可解释性。

Console

导出 Forecast 可解释性

  1. 登录到AWS Management Console在处打开 Amazon Forecast 控制台https://console.aws.amazon.com/forecast/.

  2. 数据集组中,选择您的数据集组。

  3. 在导航窗格中,选择 Insights

  4. 选择你的可解释性。

  5. 操作下拉菜单,选择Export.

  6. 导出名称字段中,为 Forecast 可解释性导出提供唯一名称。

  7. S3 可解释性导出位置字段中,输入 S3 位置以导出 CSV 文件。

  8. IAM 角色字段中,选择一个有权访问所选 S3 位置的角色。

  9. 选择创建可解释性导出.

SDK

导出 Forecast 可解释性

使用创建可解释性导出操作,请在Destination对象,以及ExplainabilityArnExplainabilityExportName.

例如:

{ "Destination": { "S3Config": { "Path": "s3://bucket/example-path/", "RoleArn": "arn:aws:iam::000000000000:role/ExampleRole" } }, "ExplainabilityArn": "arn:aws:forecast:region:explainability/example", "ExplainabilityName": "Explainability-export-name", }

限制和最佳实践

处理 Forecast 可解释性时,请考虑考虑以下限制和最佳实践。

  • Forecast 可解释性仅适用于以下生成的预测 AutoPredictor -您无法为由旧 Forecast 变量(AutoML 或手动选择)生成的预测启用预测可解释性。请参阅升级到 AutoPredictor.

    可解释性需要属性-您的预测变量必须至少包含以下一项:相关时间序列、项目元数据、假期或天气指数。

  • 影响分数为零表示没有影响-如果一个或多个属性的影响分数为零,则这些属性对预测值没有重大影响。如果 AutoPredictor 仅使用非 ML 算法,或者您没有提供相关的时间序列或项目元数据。

  • 指定最多 50 个时间序列-您可以指定最多 50 个时间序列每个 Forecast 可解释性。

  • 指定最多 500 个时间点-每个 Forecast 可解释性最多可以指定 500 个连续时间点。

  • Forecast 还会计算一些总的影响力分-Forecast 还将提供指定时间序列和时间点的累计影响分数。

  • 为单个 Forecast 创建多个 Forecast 可解释性资源-如果你想要超过 50 个时间序列或 500 个时间点的影响分数,你可以批量创建可解释性资源以跨越更大的范围。

  • 比较不同的 Forecast 可解释性资源的原始影响力分数-可以在同一预测中的可解释性资源中直接比较原始影响分数。

  • 创建 Forecast 性可解释性可视化项目在创建后的 30 天内可用-要在 30 天后查看可视化,请使用相同的配置创建新的 Forecast 可解释性。