问题标签 [amazon-forecast]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
102 浏览

amazon-web-services - AWS Forecast 中的时间戳可以有微秒吗?

时间戳中包含微秒的时间戳数据是否有效(AWS 预测)?我定义了这样的格式:YYYY-MM-DD HH24:MI:SS.US。数据集导入失败,所以我认为时间戳可能是个问题。我是否必须自己汇总数据以适应最低频率(1 分钟)?

0 投票
1 回答
1099 浏览

r - AWS 预测。对项目数量的观察太少

我正在尝试使用 Amazon Forecast 进行一些测试。我现在尝试了两个不同的数据集,如下所示:

13,2013-03-31 19:25:00,93.10999 14,2013-03-31 19:35:00,93.5 15,2013-03-31 19:40:00,93.64 16,2013-03-31 19:50:00,93.74 17,2013-03-31 20:00:00,93.8 18,2013-03-31 20:10:00,92.5

这是:

id, date, value

他们都返回此错误:

Too few observations (633334) for number of items (633334), averaging 1.000 observations per item

但是项目数量不同。

预测是非常新的,因此搜索中没有任何内容。文档没有谈论这个错误。真的不知道从哪里开始尝试克服这一点。

0 投票
1 回答
797 浏览

amazon-web-services - AWS Boto3:请求中包含的安全令牌对 AWS FORECAST 无效

我正在尝试在 aws 中查询预测 arn,但出现以下错误:

botocore.exceptions.ClientError:调用QueryForecast操作时发生错误(UnrecognizedClientException):请求中包含的安全令牌无效。

0 投票
1 回答
1021 浏览

amazon-web-services - 为什么 Amazon Forecast 无法训练预测器?

在训练我的预测器时,我遇到了这个错误,我被困住了如何修复它。

我有两个数据系列,一个“目标时间序列数据”有 9234 行和一个“item_id”,第二个是“相关时间序列数据”,其行数与我只有一个 id .

我正在使用 180 天的窗口设置数据,错误中出现的第二个和第一个数字之间到底有什么区别,9414 - 9234 = 180。

一旦我的数据没有丢失数据并且每天都会出现,为什么它会返回此错误?我的数据从 1994-06-07 开始,到 2019-09-17 结束。为什么我应该有 9414 个数据点而不是 9234 个?我应该在“目标时间序列数据”中取出 180 天吗?

0 投票
1 回答
77 浏览

r - 从 R 调用 Amazon Forecast API

我看到我们可以从 Python 调用 Amazon Forecast,示例

多型号比较

如何使用亚马逊预报

任何人都知道我们如何对 R 做同样的事情?

我想调用 Amazon Forecast 来运行 R 中所有不同的 8 个模型。

0 投票
1 回答
114 浏览

machine-learning - 通过了解一些未来事件来增强预测

在使用 AWS Forecast 时,是否有某种方法可以使用“部分未来信息”来扩充我们的模型以改进预测?

到目前为止,我已经从 AWS Forecast 获得了相当可靠的预测,但我怀疑如果我能提供一些关于已知未​​来事件的信息,我可以在一定程度上大幅改进预测。

我对预测和机器学习非常陌生,“部分未来信息”是指:

  • 我试图预测变量 X 的时间序列在未来将如何表现
  • 我正在训练一个模型,其中包含许多不同变量的过去时间序列信息,包括 X
  • 我还想为这些变量的一个子集提供已知的未来时间序列信息,因为 1)它们应该对预测产生重大影响 2)这将使我能够执行“假设”分析

更具体地说:

  • 我试图根据过去的收入、网络流量、广告支出和促销折扣来预测未来的收入
  • 到目前为止,AWS Forecast 一直在为我提供良好的预测(我保留了这么多月来自模型的已知数据,并且它对“未来”的预测与已知数据非常匹配)
  • 但是,我真的很想告诉 AWS Forecast,例如,计划在不久的将来进行的重要广告活动
  • 我也非常希望能够改变一些未来的变量或变量,看看它们如何影响结果(“如果我下个月在广告上花费 $Z 会怎样?”)

目前,我将我们所有过去的收入、网络流量、广告支出和促销折扣信息作为“目标时间序列”以具有 3 列(指标名称、时间戳、指标)的单个 CSV 文件格式提供给 AWS Forecast价值); 大约 15 个不同的度量名称值;以及大约 10,000 行数据(15 个变量的数年价值 = ~ 2 * 365 * 15 = ~ 11,000 行)。每个指标都在相同的时间间隔内提供(例如,所有指标都在 2017 年 10 月 1 日和 2019 年 11 月 25 日之间提供)。

我想提供一些额外的部分数据,突出已知的未来重大事件(广告支出、促销折扣),以进一步改进我们的预测。

例如:

  • 2017-10-01 至 2019-11-25 收入
  • 2017-10-01 至 2019-11-25 的网络流量
  • 2017 年 10 月 1 日至 2019 年 11 月 25 日的广告支出
  • 2017-10-01至2019-11-25促销折扣
  • 加上2019-11-26 至 2020-02-01的计划广告支出

有人可以帮助我了解一些术语和“操作方法”机制吗?

0 投票
1 回答
138 浏览

amazon-web-services - 使用 AWS Forecast 预测每位客户

我正在使用 AWS Forecast 托管服务来预测一段时间内的客户支出。

我知道我必须创建一个包含以下数据集的数据集组:primaray、secondary 和 metadata。(然后将这些导入组中)

我无法理解的一件事是如何组织我的数据集,以及我是否需要为每个客户创建一个“数据集组”,或者我是否可以将所有客户支出数据合并到同一个数据集中?

据我了解,数据集组只能包含一个主数据集(在这种情况下是合并的客户数据)。然而,一位顾客的消费与另一位顾客的消费无关。如果将所有数据合并到一个主数据集中,我可以通过过滤客户 ID 来生成预测,并且 这些单独的预测不会以任何方式相互关联吗?

或者,这是否意味着我必须为每个客户创建一个数据集组?

0 投票
0 回答
52 浏览

amazon-web-services - AWS 预测推理优化

当前行为:

  • 目标系列 1320 个数据点,每小时频率,直到特定日期(比方说2020-01-30 23:00:00:)
  • 同一日期的相关时间序列,包括下一小时的信息,(例如2020-01-31 00:00:00
  • 预测范围为 1 小时的 Prophet 预测器

该方法是获取最近一小时的数据,并将其包含到目标序列(和相关时间序列)中,以预测接下来的时间段。这是步骤:

  • 将最近更新的目标时间序列保存到 S3
  • 将数据导入 Forecast 使用forecast.create_dataset_import_job
  • 删除以前的预测使用forecast.delete_forecast
  • 使用创建一个新的预测(无需重新训练预测器)forecast.create_forecast

但主要问题是预测创建需要长达 30 分钟,那么有没有办法让推理更快?或改变方法以优化这样做的时间?

0 投票
2 回答
203 浏览

amazon-web-services - 如何在 Amazon Forecast 相关时间序列中正确使用 in_stock

我试图了解 Amazon Forecast 使用我的历史销售数据创建需求预测所需的数据。我已经多次阅读文档。我仍然对相关时间序列中的“in_stock”字段应该如何运作感到困惑。这是我所指的“in_stock”字段描述的链接:

https://docs.aws.amazon.com/forecast/latest/dg/retail-domain.html#related-time-series-type-retail-domain

它说:

以下字段是可选的,可能有助于改进预测结果:

  • in_stock (integer; 1=true, 0=false) – 指定商品是否有货的标志。

这个字段到底是什么意思?是不是只有在销售数量为0时才设置为0?换句话说,如果给定日期的销售数量为 0,并且 in_stock 设置为 0,那么系统知道销售为 0 是因为产品不可用,而不是因为没有需求。

如果产品在一天中途缺货怎么办。会不会是您可能有 in_stock = 0 但当天也有销售的情况?

我也很困惑这个 in_stock 字段在他们的另一篇文档中如何发挥作用:

https://d1.awsstatic.com/whitepapers/time-series-forecasting-principles-amazon-forecast.pdf?did=wp_card&trk=wp_card

在第 10 页,他们说:

在零售案例研究中,零售商售出零件可用商品的信息与售出零件不可用商品的信息不同,要么是在其存在之外的时期,例如在其推出之前或在其弃用之后,要么在存在的期间,例如部分缺货,或者在此时间范围内没有记录销售数据。默认零填充适用于前一种情况。在后者中,即使相应的目标值通常为零,在被标记为缺失的值中也会传递附加信息。您必须保留丢失数据的信息,而不是丢弃此信息(请参阅以下示例,了解保留信息为何重要的说明)。要将不表示可用产品的零销售额的值编码为真正缺失的值,Amazon Forecast 允许用户在 create_predictor API 的 FeaturizationConfig 参数的 FeaturizationMethodParameters 键中指定中间填充和回填的填充类型。要将值标记为真正缺失,这些参数的填充类型应设置为 NaN。与零填充不同,使用 NaN 编码的值被视为真正缺失,并且不用于度量评估组件。这些参数的填充类型应设置为 NaN。与零填充不同,使用 NaN 编码的值被视为真正缺失,并且不用于度量评估组件。这些参数的填充类型应设置为 NaN。与零填充不同,使用 NaN 编码的值被视为真正缺失,并且不用于度量评估组件。

这似乎表明,当产品缺货且没有销售时,这些行应标记为NaN,这有效地从数据集中删除了这些行。

我想我的问题归结为:

  1. 销售额为 0 且 in_stock = 0 的一天与销售额 = NaN 的一天之间有什么区别,后者有效地从数据集中删除了这一天?

  2. 当产品在一天中途缺货时,您会怎么做?in_stock = 0 并且仍然有给定日期的销售数据吗?

0 投票
1 回答
127 浏览

java - Amazon Forecast 查询 Java 集成

我正在寻找Amazon Forecast API 的 JAVA 示例,以便可以将其集成到我的 JAVA 应用程序中。

我搜索并没有找到任何解决方案,即使我向 AWS 团队提出了支持票,他们也无法提供我作为屏幕截图附加的内容。在此处输入图像描述

文档适用于 python、NodeJS 和其他语言,但不适用于 JAVA。

在与AWS Forecast Java SDK集成方面,我已经做了很多努力。

更新

最后,我在下面的答案中发布了一些内容,但仍在寻找更好的选择。