假设分析 - Amazon Forecast

Amazon Forecast 已不再向新买家开放。Amazon Forecast 的现有客户可以继续照常使用该服务。了解更多

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

假设分析

假设分析是一种工具,可用于调查和解释不同方案可能对 Amazon Forecast 创建的基准预测产生的影响。基准预测是 Amazon Forecast 根据您提供的原始相关时间序列创建的预测。

假设分析会根据您选择修改相关时间序列的方式创建一系列假设分析预测。将这些假设预测与基准预测进行比较和对比,有助于您了解具体的变化会如何影响您的模型。

有两种创建已修改的相关时间序列的方法。您可以在 Amazon S3 路径中提供已修改的相关时间序列,也可以为现有的相关时间序列指定一组转换。在指定一组转换时,会创建原始相关时间序列的副本以包含这些更改。

此转换允许您创建相关时间序列的子集并修改相关时间序列的特定属性。有关更多信息,请参阅替换数据集转换函数

创建假设分析

假设分析讨论了基准相关时间序列的变化如何影响预测。您只能根据使用. 的预测创建假设分析。 AutoPredictor在创建假设分析后,您可以创建一个或多个假设分析预测。比较假设分析预测和基准预测,然后导出一个或多个假设分析预测。

注意

您的数据必须采用逗号分隔值 (CSV) 格式才能创建假设分析。

创建假设分析

您可以使用 Forecast 控制台或 Forecast 软件开发套件 () SDK 创建假设分析。

Console

要创建假设分析,请完成以下步骤。

  1. 创建使用训练过的预测 AutoPredictor。

  2. 打开包含您感兴趣的预测的数据集组控制面板。

  3. 选择探索假设分析

  4. 在 Insights 页面中的假设分析选项卡上,选择创建

  5. 假设分析名称字段中提供一个唯一名称,然后为此分析选择基准预测。

  6. 项目选择区域中,选择是否要在分析中自动包含所有项目,还是要指定包含带文件的项目。

    如果您选定选择带文件的项目,则必须提供一个数据集,该数据集正好包含要在假设分析预测中修改的项目。有关更多信息,请参阅 指定时间序列

  7. 选择创建假设分析。假设分析页面顶部的横幅会显示假设分析创建作业的状态。

SDK

使用该CreateWhatIfAnalysis操作,为其提供唯一的名称 WhatIfAnalysisName 并提供基准预测ARN的预测 ForecastArn。下面的示例显示了使用“item_id”和“store_location”维度组合的时间序列架构。有关更多信息,请参阅 指定时间序列

{ "ForecastArn": "arn:aws:forecast:region:acctNumber:forecast/baselineForecast", "WhatIfAnalysisName": "unique_name", "TimeSeriesSelector": { "TimeSeriesIdentifiers": { "DataSource": { "S3Config": { "Path": "s3://bucket/example-path", "RoleArn": "arn:aws:iam::000000000000:role/ExampleRole" } }, "Schema": { "Attributes": [ { "AttributeName": "item_id", "AttributeType": "string" } { "AttributeName": "store_location", "AttributeType": "string" } ] } } } }

创建假设分析预测

您可以使用 Forecast 控制台或 Forecast 软件开发套件 () SDK 创建假设预测。

Console

要创建假设分析预测,请完成以下步骤:

  1. 在 Insights 页面的假设分析选项卡上,选择您感兴趣的假设分析。

  2. 假设分析预测部分中,选择创建

  3. 在创建假设分析预测的页面上,提供唯一的假设分析预测名称,然后选择使用转换函数使用替换数据集定义假设预测。有关更多信息,请参阅替换数据集转换函数

    1. 如果您选择使用转换函数,则必须使用转换函数生成器来选择和修改假设分析预测中包含的行。所有转换都将按其指定的顺序应用。条件按其指定顺序应用,并与AND操作相结合。要满足所有条件才能应用转换。

    2. 如果您选择使用替换数据集定义假设分析预测,则必须提供一个替换数据集,该数据集只包含要为假设分析预测修改的行。

  4. 选择创建

SDK - Transformation Function

使用该CreateWhatIfForecast操作,为提供唯一的名称 WhatIfAnalysisName 并提供您的预测ARN ForecastArn。下面的示例显示了当“store_location”不是“tacoma”时转换为“价格”的架构。

{ "WhatIfAnalysisArn": "arn:aws:forecast:us-west-2:666488130463:what-if-analysis/jan2020forecast/PromotionAnalysis_01G8MB3PZM89J9V1VEXCC0BS63", "WhatIfForecastName": "unique_name", "TimeSeriesTransformations": [ { "Action": { "AttributeName": "price", "Operation": "MULTIPLY", "Value": 0.85 }, "TimeSeriesConditions": [ { "AttributeName": "store_location", "AttributeValue": "tacoma", "Condition": "NOT_EQUALS" } ] } ] }

在此示例中,jan2020forecast 是基准预测,PromotionAnalysis_01G8MB3PZM89J9V1VEXCC0BS63 是假设分析的名称。

您也可以通过 TimeSeriesReplacementsDataSource 操作指定一个替换数据集。

SDK - Replacement Dataset

使用该CreateWhatIfForecast操作,为提供唯一的名称 WhatIfAnalysisName 并提供您的预测ARN ForecastArn。下面的示例显示了一个替换数据源的架构。

{ "WhatIfAnalysisArn": "arn:aws:forecast:us-west-2:666488130463:what-if-analysis/jan2020forecast/PromotionAnalysis_01G8MB3PZM89J9V1VEXCC0BS63", "WhatIfForecastName": "unique_name", "TimeSeriesReplacementsDataSource": { "S3config": { "Path" : "s3://bucket-name/replacementDatasource.csv", "RoleArn": "arn:aws:iam::acct-id:role/Role" }, "Schema": { Attributes" : [ { "AttributeName": "item_id", "AttributeType": "string" }, { "AttributeName": "timestamp", "AttributeType": "timestamp" }, { "AttributeName": "price", "AttributeType": "float" }, { "AttributeName": "stock_count", "AttributeType": "integer" }, ] } } }

您还可以通过 TimeSeriesTransformation 操作来指定对相关时间序列的更改。

比较假设分析预测

要比较假设分析预测,请在 Forecast 控制台中完成以下步骤:

  1. 在 Insights 页面中的假设分析选项卡上,选择您感兴趣的假设分析。

  2. 比较假设分析预测的部分中,指定要分析的项目、一个或多个假设分析预测以及至少一种预测类型

    Interface for comparing what-if forecasts with baseline forecast, showing input fields and graph.

    在此示例中,有两种假设分析预测,即 priceCut10pctpriceIncrease20pct,它们与 item_105 的预测类型 p50p10p90 进行了比较。该图表允许您查看这些预测与基准时间序列的对比情况。

  3. 将鼠标悬停在图表上,以查看假设分析预测与基准预测的比较情况。

导出假设分析预测

您可以使用 Forecast 控制台或 Forecast 软件开发套件 () SDK 导出假设预测。

Console

要导出假设分析预测,请执行以下步骤:

  1. 在 Insights 页面中的假设分析选项卡上,选择您感兴趣的假设分析。

  2. 假设分析预测导出的部分中,选择创建导出

  3. 在 “创建假设预测导出” 页面上,提供唯一的假设预测导出名称,指定要包括的假设预测,选择导出地点,然后提供角色。IAM

  4. 选择创建导出

SDK

使用 CreateWhatIfForecastExport 操作,将“目标”配置为指向将包含导出内容的 Amazon S3 存储桶。指定要导出的具体假设分析预测,并为导出提供一个唯一的名称。

{ "WhatIfForecastArns": [ "arn:aws:forecast:region:acctNumber:what-if-forecast/id1" , "arn:aws:forecast:region:acctNumber:what-if-forecast/id2" ], "WhatIfForecastExportName": "unique_export_name", "Destination": { "S3Config": { "Path": "s3://bucket/example-path", "RoleArn": "arn:aws:iam::000000000000:role/ExampleRole" } }, }

查询假设分析预测

您可以使用 QueryWhatIfForecast 操作查询假设分析预测。默认情况下,返回预测的完整范围。您可以请求完整预测中的特定日期范围。

当您查询假设分析预测时,必须指定筛选条件。筛选条件是密钥值对。键是用于创建预测的其中一个数据集中的架构属性名称之一(包括预测维度)。值 是指定密钥的有效值。您可以指定多个密钥值对。返回的假设分析预测将只包含满足所有条件的项目。

例如,使用此代码获取 product_42 的假设分析预测。

{ "Filters": { "item_id" : "product_42" }, "WhatIfForecastArn": "arn:aws:forecast:region:acctNumber:what-if-forecast/id1" }