附录 A:常见问题解答
问:如何开始使用 Amazon Forecast?
-
首先,您需要一个 AWS 账户。
-
接下来,在 AWS Management Console
中打开 Forecast 服务,创建一个数据集组,然后将 .csv文件导入到目标时间序列数据集(必需)。开始所需的最低数据是您想要预测的数量的历史数据,例如每个家庭每个时间戳的用电量。 -
最后,通过运行 CreatePredictor 来创建模型,然后通过运行 CreateForecast 来生成结果。有关更多详细信息,请参阅入门文档页面。
另请参阅 GitHub 简介和最佳实践指南
问:Amazon Forecast 适合我吗?
并非所有的机器学习问题都是预测问题。要问的第一个问题是:“我的业务问题是否在陈述中包含时间序列?” 例如,您是否只需要未来某个特定时间和日期的特定值? 预测不适合于一般的静态(特定日期/时间无关紧要)问题,例如欺诈检测或向用户推荐电影片名。对于静态问题,有更快的解决方案。
除了具有时间序列数据外,数据本身应该是“密集的”,并且具有较长的历史。下表对此进行了总结:
表 2 – 标准和 Amazon Forecast 算法类
| 标准 | Amazon Forecast 算法类 |
|---|---|
| 包含多达 500 万个时间序列的大型数据集,具有相似的基础模式 + 季节效应 + 相关数据。每个时间序列都应该有很长的历史,如果试图捕捉年度事件,则最好超过两年,并且每个时间序列都应超过 300 个,理想情况下至少有 1000 个数据点。 | Amazon Forecast 专有深度学习 DeepAR+、CNN-QR |
| 包含 1-100 个时间序列的小型数据集,其中大多数时间序列有 300 多个数据点 + 季节效应 + 相关数据。 | Prophet |
| 包含 1-10 个时间序列的小型数据集,其中大多数时间序列有 300 多个数据点 + 季节效应。 | ETS、ARIMA |
| 包含 1-10 个时间序列的间歇数据集(稀疏,包含许多 0),其中大多数时间序列有 300 多个数据点。 | Amazon Forecast 专有 NPTS |
| 包含 1-10 个时间序列的小型数据集(常规或稀疏数据集),其中大多数时间序列的数据点少于 300 个。 | 对于 Amazon Forecast 来说,数据太小了。改用 Excel 中的 ETS 或传统的统计模型 ARIMA 和 Prophet。 |
最佳做法是第一次在预测器中使用 AutoML 模式训练数据。AutoML 将自动运行所有算法(DL 算法在 HPO 开启时运行),以了解哪种算法对您的数据最有效。
问:缺失的数据是什么情况? 什么时候才能产生合理的预测?
可能是数据记录存在问题,或者数据的聚合水平过低或过高。一般规则是,预测长度不能超过训练数据的 1/3。
除了缺失的数据量外,另一个考虑因素是插补缺失的数据。您可以将所有 0 转换为空值,然后让 Amazon Forecast 完成自动插补缺失值的繁重工作。Amazon Forecast 将自动检测缺失值是由于新产品推出(冷启动)还是产品报废所致。您可以使用多个缺失值逻辑,包括值、中值、最小值、最大值、零、平均值和 nan(仅限目标时间序列)。请参阅空值填充语法文档。
-
“frontfill”–(仅限 TTS)指的是新项目或冷启动项目,以及您想在项目开始有任何历史记录之前如何处理空值
-
“middlefill”– 指的是时间序列值中间的空值
-
“backfill”– 指的是生命周期已终止的项目,以及您想在项目停止销售后如何处理空值
-
“futurefill”–(仅限 RTS)指的是训练数据结束后出现的空值
问:我的输入历史数据没有负值,但是我在需求预测中看到负值? 为什么会发生这种情况? 如何避免出现这种情况?
对于除 NPTS(基于非负数据训练)和 DeepAR(具有负二项式似然函数)之外的所有模型,不能保证会生成正数。解决方案是更改为上述模型之一,或者将预测值截断为非负值。
问:为什么准确度指标在分位数上有所不同? 既然模型相同,错误不应该一样吗?
有关权重如何取决于分位数的更多说明,请参阅加权分位数损失(wQL)。
想象一下,所有预测都位于三个不同的分位数:p10、p50、p90。这三个预测本身都是随机变量。准确度是在每个分位数级别的实际值和预测值之间分别计算的。您可能会看到一个“wQL”表,即加权分位数损失,如下所示。wQL 值彼此之间没有确定性关系。(召回损失意味着错误,因此是无序的;然而,分位数预测是有序的)。因此,例如,p90 wQL 没有理由必须大于 p50 wQL。
表 3 – 预测分位数示例
| A | B, | C | |
|---|---|---|---|
| 1 | P10 wQL | P50 wQL | P90 wQL |
| 2 | 0.18647 | 0.50879 | 0.30428 |
问:如何提高预测准确性?
预测的准确性取决于在数量和质量上是否有正确的数据。如果准确性不令人满意,那么了解问题的可预测性(或数据的随机性/噪声/平稳程度)可能是有意义的。其他需要考虑的因素包括,评估不同的模型、超参数设置,以及使用相关的时间序列和项目元数据集整合其他特征。有关具体建议,请参阅 GitHub 上的这份最佳实践文档
问:我有一个非常适合我的使用案例的算法,但 Amazon Forecast 中没有提供该算法。我应该怎么办?
Amazon Forecast 团队很乐意帮助您处理这个使用案例。通过电子邮件 <amazonforecast-poc@amazon.com> 联系 Amazon Forecast 的服务团队。