现在用 亚马逊预报,您可以无缝地以最高 80% 的速度进行假设分析,以分析和量化业务杠杆对您的需求预测的潜在影响。 Forecast 是一项使用机器学习 (ML) 生成准确需求预测的服务,无需任何 ML 经验。 通过假设分析模拟场景是一种强大的业务工具,可以通过捕捉假设场景的可能结果来应对未来事件的不确定性。 评估业务决策对收入或盈利能力的影响、量化与市场趋势相关的风险、评估如何组织物流和劳动力以满足客户需求等是一种常见的做法。
对需求预测进行假设分析可能具有挑战性,因为您首先需要准确的模型来预测需求,然后需要一种快速简便的方法来在一系列场景中重现预测。 到目前为止,尽管 Forecast 提供了准确的需求预测,但使用 Forecast 进行假设分析可能既麻烦又耗时。 例如,零售促销计划是假设分析的常见应用,用于确定产品的最佳价格点以最大化收入。 以前在 Forecast 中,您必须为要测试的每个场景准备和导入新的输入文件。 如果您想测试三个不同的价格点,您首先必须通过手动离线转换数据来创建三个新的输入文件,然后将每个文件分别导入 Forecast。 实际上,您为每个场景执行相同的任务集。 此外,为了比较场景,您必须单独下载每个场景的预测,然后离线合并它们。
通过今天的发布,您可以轻松地以最高 80% 的速度进行假设分析。 通过消除对每个场景的离线数据操作和导入的需要,我们可以轻松创建新场景。 现在,您可以通过简单的操作转换初始数据集来定义场景,例如将产品 A 的价格乘以 90% 或将产品 B 的价格降低 10 美元。 这些转换还可以与条件相结合,以控制场景应用的参数(例如,仅在一个位置降低产品 A 的价格)。 通过此次发布,您可以同时定义和运行同一类型分析(例如促销分析)或不同类型分析(例如地理区域 1 中的促销分析和地理区域 2 中的库存计划)的多个场景。 最后,您不再需要离线合并和比较场景的结果。 现在,您可以在同一张图表中查看所有场景的预测预测或批量导出数据以供离线查看。
解决方案概述
本文中的步骤演示了如何在 AWS管理控制台. 要直接使用 Forecast API 进行假设分析,请按照我们的 notebook GitHub回购 这提供了一个类似的演示。
导入您的训练数据
要进行假设分析,您必须导入代表目标时间序列数据(显示预测目标)和相关时间序列数据(显示影响目标的属性)的两个 CSV 文件。 我们的示例目标时间序列文件包含产品项目 ID、时间戳、需求、商店 ID、城市和地区,我们的相关时间序列文件包含产品项目 ID、商店 ID、时间戳、城市、地区和价格。
要导入您的数据,请完成以下步骤:
- 在“预测”控制台上,选择 查看数据集组.
- 创建数据集组.
- 针对 数据集组名称,输入数据集名称(对于这篇文章,
my_company_consumer_sales_history
). - 针对 预测范围,选择一个预测域(对于这篇文章,
Retail
). - 下一页.
- 点击 创建目标时间序列数据集 页面,提供数据集名称、数据频率和数据架构
- 提供数据集导入详细信息。
- Start 开始.
以下屏幕截图显示了为我们的示例填写的目标时间序列页面的信息。
您将被带到可用于跟踪进度的仪表板。
- 要导入相关的时间序列文件,在仪表板上,选择 进口.
- 点击 创建相关的时间序列数据集 页面,提供数据集名称和数据架构。
- 提供数据集导入详细信息。
- Start 开始.
以下屏幕截图显示了为我们的示例填写的信息。
训练预测变量
接下来,我们训练一个预测器。
- 在仪表板上,选择 训练预测器.
- 点击 训练预测器 页面,输入您的预测变量的名称、您想要预测的未来多长时间和频率,以及您想要预测的分位数。
- 启用 AutoPredictor – 这是使用假设分析所必需的。
- 创建.
以下屏幕截图显示了为我们的示例填写的信息。
创建一个预测
在我们的预测器被训练后(这可能需要大约 2.5 小时),我们创建一个预测。 当您看到 查看预测变量 仪表板上的按钮。
- 创建一个预测 在仪表板上
- 点击 创建一个预测 页面,输入预测名称,选择您创建的预测变量,并指定预测分位数(可选)和要为其生成预测的项目。
- Start 开始.
完成这些步骤后,您已成功创建预测。 这代表了您用来进行假设分析的基线预测方案。
如果您在创建基线预测时需要更多帮助,请参阅 入门(控制台). 我们现在进入进行假设分析的下一步。
创建假设分析
至此,我们已经创建了基线预测,并将开始演练如何进行假设分析。 进行假设分析分为三个阶段:设置分析,通过定义场景中的更改来创建假设预测,以及比较结果。
- 要设置分析,请选择 探索假设分析 在仪表板上。
- 创建.
- 输入唯一名称并在下拉菜单中选择基线预测。
- 选择数据集中您要对其进行假设分析的项目。 你有两个选择:
- 选择所有项目 是默认值,我们在这篇文章中选择。
- 如果要选择特定项目,请选择 选择带有文件的项目 并导入一个 CSV 文件,其中包含相应项目的唯一标识符和任何关联维度(例如区域)。
- 创建假设分析.
创建假设预测
接下来,我们创建一个假设预测来定义我们想要分析的场景。
- 创建.
- 输入场景的名称。
您可以通过两个选项定义您的场景:
- 使用转换函数 – 使用转换构建器转换您导入的相关时间序列数据。 在本演练中,我们评估了当价格与基线预测中的价格相比降低 10% 和 30% 时,我们数据集中的项目的需求如何变化。
- 使用替换数据集定义假设预测 – 替换您导入的相关时间序列数据集。
转换函数构建器提供了通过简单操作转换您之前导入的相关时间序列数据的功能,以将数据中的特征(例如价格)加、减、除和乘以您指定的值。 对于我们的示例,我们创建了一个将价格降低 10% 的场景,价格是数据集中的一个特征。
- 针对 假设预测定义方法, 选择 使用转换函数.
- 乘 作为我们的运营商, 车资 作为我们的时间序列,并输入 0.9。
您还可以添加条件以进一步优化您的方案。 例如,如果您的数据集包含按地区组织的商店信息,您可以按地区限制降价方案。 您可以定义适用于不在 Region_10 中的商店的 1% 降价方案。
- 添加条件.
- 不等于 作为操作并进入Region_1。
修改相关时间序列的另一个选项是导入一个已经包含定义场景的数据的新数据集。 例如,要定义降价 10% 的场景,我们可以上传一个新数据集,指定正在变化的商品的唯一标识符以及降低 10% 的价格变化。 为此,请选择 使用替换数据集定义假设预测 并导入包含价格变化的 CSV。
- 要完成假设预测定义,请选择 创建.
重复该过程以创建另一个降价 30% 的假设预测。
为每个假设预测运行假设分析后,状态将变为活动。 第二阶段到此结束,您可以继续比较假设预测。
比较预测
我们现在可以比较两种情景的假设预测,将降价 10% 与降价 30% 进行比较。
- 在分析见解页面上,导航到 比较假设预测 部分。
- 针对 ITEM_ID,输入要分析的项目。
- 针对 假设预测,选择要比较的场景(对于这篇文章,
Scenario_1
和Scenario_2
). - 比较假设.
下图显示了我们两种方案中产生的需求。
默认情况下,它展示了 P50 和基本案例场景。 您可以查看通过选择您喜欢的分位数生成的所有分位数 选择预测 下拉式菜单。
导出您的数据
要将数据导出到 CSV,请完成以下步骤:
- 创建导出.
- 输入导出文件的名称(对于这篇文章,
my_scenario_export
) - 通过选择场景来指定要导出的场景 假设预测 下拉式菜单。 您可以在一个组合文件中一次导出多个场景。
- 针对 出口地点,指定 亚马逊简单存储服务 (Amazon S3) 位置。
- 要开始导出,请选择 创建导出.
- 要下载导出,首先从 AWS 管理控制台导航到 S3 文件路径位置,然后选择文件并选择下载按钮。 导出文件将包含时间戳、项目 ID、维度以及所选所有场景(包括基本场景)的每个分位数的预测。
结论
情景分析是帮助驾驭业务不确定性的关键工具。 它提供了远见和一种对想法进行压力测试的机制,使企业更有弹性,准备得更好,并能够控制自己的未来。 Forecast 现在支持预测假设情景分析。 要进行情景分析,请打开预测控制台并按照本文中概述的步骤操作,或参考我们的 GitHub 笔记本 关于如何通过 API 访问功能。
要了解更多信息,请参阅 创建WhatIfAnalysis 开发者指南中的页面。
关于作者
布兰登奈尔 是 Amazon Forecast 的高级产品经理。 他的专业兴趣在于创建可扩展的机器学习服务和应用程序。 工作之余,他可以探索国家公园、完善他的高尔夫挥杆或计划一次冒险之旅。
阿基尔·拉吉·阿兹科丹 是一名在 Amazon Forecast 工作的软件开发工程师。 他的兴趣在于设计和构建解决复杂客户问题的可靠系统。 工作之余,他喜欢学习历史、远足和玩电子游戏。
康纳史密斯 是一名在 Amazon Forecast 工作的软件开发工程师。 他专注于构建安全、可扩展的分布式系统,为客户提供价值。 工作之余,他花时间阅读小说、弹吉他和随机观看 YouTube 视频。
香农·基林斯沃思(Shannon Killingsworth) 是 Amazon Forecast 的 UX 设计师。 两年来,他一直在通过简化流程以及以对我们的用户有意义的方式添加新功能来改善 Forecast 的用户体验。 工作之余,他喜欢跑步、绘画和阅读。