问题标签 [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.
amazon-web-services - AWS Forecast 中的时间戳可以有微秒吗?
时间戳中包含微秒的时间戳数据是否有效(AWS 预测)?我定义了这样的格式:YYYY-MM-DD HH24:MI:SS.US。数据集导入失败,所以我认为时间戳可能是个问题。我是否必须自己汇总数据以适应最低频率(1 分钟)?
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
但是项目数量不同。
预测是非常新的,因此搜索中没有任何内容。文档没有谈论这个错误。真的不知道从哪里开始尝试克服这一点。
amazon-web-services - AWS Boto3:请求中包含的安全令牌对 AWS FORECAST 无效
我正在尝试在 aws 中查询预测 arn,但出现以下错误:
botocore.exceptions.ClientError:调用QueryForecast操作时发生错误(UnrecognizedClientException):请求中包含的安全令牌无效。
amazon-web-services - 为什么 Amazon Forecast 无法训练预测器?
在训练我的预测器时,我遇到了这个错误,我被困住了如何修复它。
我有两个数据系列,一个“目标时间序列数据”有 9234 行和一个“item_id”,第二个是“相关时间序列数据”,其行数与我只有一个 id .
我正在使用 180 天的窗口设置数据,错误中出现的第二个和第一个数字之间到底有什么区别,9414 - 9234 = 180。
一旦我的数据没有丢失数据并且每天都会出现,为什么它会返回此错误?我的数据从 1994-06-07 开始,到 2019-09-17 结束。为什么我应该有 9414 个数据点而不是 9234 个?我应该在“目标时间序列数据”中取出 180 天吗?
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的计划广告支出
有人可以帮助我了解一些术语和“操作方法”机制吗?
amazon-web-services - 使用 AWS Forecast 预测每位客户
我正在使用 AWS Forecast 托管服务来预测一段时间内的客户支出。
我知道我必须创建一个包含以下数据集的数据集组:primaray、secondary 和 metadata。(然后将这些导入组中)
我无法理解的一件事是如何组织我的数据集,以及我是否需要为每个客户创建一个“数据集组”,或者我是否可以将所有客户支出数据合并到同一个数据集中?
据我了解,数据集组只能包含一个主数据集(在这种情况下是合并的客户数据)。然而,一位顾客的消费与另一位顾客的消费无关。如果将所有数据合并到一个主数据集中,我可以通过过滤客户 ID 来生成预测,并且 这些单独的预测不会以任何方式相互关联吗?
或者,这是否意味着我必须为每个客户创建一个数据集组?
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 分钟,那么有没有办法让推理更快?或改变方法以优化这样做的时间?
amazon-web-services - 如何在 Amazon Forecast 相关时间序列中正确使用 in_stock
我试图了解 Amazon Forecast 使用我的历史销售数据创建需求预测所需的数据。我已经多次阅读文档。我仍然对相关时间序列中的“in_stock”字段应该如何运作感到困惑。这是我所指的“in_stock”字段描述的链接:
它说:
以下字段是可选的,可能有助于改进预测结果:
- in_stock (integer; 1=true, 0=false) – 指定商品是否有货的标志。
这个字段到底是什么意思?是不是只有在销售数量为0时才设置为0?换句话说,如果给定日期的销售数量为 0,并且 in_stock 设置为 0,那么系统知道销售为 0 是因为产品不可用,而不是因为没有需求。
如果产品在一天中途缺货怎么办。会不会是您可能有 in_stock = 0 但当天也有销售的情况?
我也很困惑这个 in_stock 字段在他们的另一篇文档中如何发挥作用:
在第 10 页,他们说:
在零售案例研究中,零售商售出零件可用商品的信息与售出零件不可用商品的信息不同,要么是在其存在之外的时期,例如在其推出之前或在其弃用之后,要么在存在的期间,例如部分缺货,或者在此时间范围内没有记录销售数据。默认零填充适用于前一种情况。在后者中,即使相应的目标值通常为零,在被标记为缺失的值中也会传递附加信息。您必须保留丢失数据的信息,而不是丢弃此信息(请参阅以下示例,了解保留信息为何重要的说明)。要将不表示可用产品的零销售额的值编码为真正缺失的值,Amazon Forecast 允许用户在 create_predictor API 的 FeaturizationConfig 参数的 FeaturizationMethodParameters 键中指定中间填充和回填的填充类型。要将值标记为真正缺失,这些参数的填充类型应设置为 NaN。与零填充不同,使用 NaN 编码的值被视为真正缺失,并且不用于度量评估组件。这些参数的填充类型应设置为 NaN。与零填充不同,使用 NaN 编码的值被视为真正缺失,并且不用于度量评估组件。这些参数的填充类型应设置为 NaN。与零填充不同,使用 NaN 编码的值被视为真正缺失,并且不用于度量评估组件。
这似乎表明,当产品缺货且没有销售时,这些行应标记为NaN
,这有效地从数据集中删除了这些行。
我想我的问题归结为:
销售额为 0 且 in_stock = 0 的一天与销售额 = NaN 的一天之间有什么区别,后者有效地从数据集中删除了这一天?
当产品在一天中途缺货时,您会怎么做?in_stock = 0 并且仍然有给定日期的销售数据吗?
java - Amazon Forecast 查询 Java 集成
我正在寻找Amazon Forecast API 的 JAVA 示例,以便可以将其集成到我的 JAVA 应用程序中。
我搜索并没有找到任何解决方案,即使我向 AWS 团队提出了支持票,他们也无法提供我作为屏幕截图附加的内容。
文档适用于 python、NodeJS 和其他语言,但不适用于 JAVA。
在与AWS Forecast Java SDK集成方面,我已经做了很多努力。
更新
最后,我在下面的答案中发布了一些内容,但仍在寻找更好的选择。