使用 AutoGluon-TimeSeries PlatoBlockchain 数据智能轻松准确地进行预测。 垂直搜索。 人工智能。

使用 AutoGluon-TimeSeries 轻松准确地进行预测

AutoGluon-TimeSeries 是 AutoGluon 的最新成员,只需三行代码即可帮助您轻松构建强大的时间序列预测模型。

时间序列预测是许多行业和科学领域的一项常见任务。 获得可靠的供应、需求或产能预测对于企业规划至关重要。 然而,时间序列预测是一个难题,尤其是当有数千个潜在相关的时间序列可用时,例如电子商务中大型目录的销售,或数百个运营站点的容量。

简单的统计或基于判断的预测方法通常已经是强大的基线,很难用新的机器学习 (ML) 方法进行改进。 此外,ML 的最新进展在预测中的应用多种多样,只有少数方法,例如 深度AR [1] 或时间融合变形金刚 [2] 成为流行的选择。 但是,这些方法难以在生产中进行训练、调整和部署,需要 ML 和时间序列分析方面的专业知识。

AutoML 是 ML 中一个快速发展的主题,专注于自动化 ML 管道中的常见任务,包括特征预处理、模型选择、模型调整、集成和部署。 AutoGluon-TimeSeries 是 自动胶,领先的开源 AutoML 解决方案之一,建立在 AutoGluon 强大的预测任务 AutoML 框架之上。 AutoGluon-TimeSeries 旨在用最少三行代码构建强大的预测系统,减轻特征预处理、模型选择、模型调整和易于部署方面的挑战。

通过简单调用 AutoGluon-TimeSeries 的 TimeSeriesPredictor, AutoGluon 在拟合模型时遵循直观的优先级顺序:从简单的原始基线开始,然后转向强大的全局神经网络和基于树的提升方法,所有这些都在用户指定的时间预算内进行。 当相关时间序列(时变协变量或外生变量)或项目元数据(静态特征)可用时,AutoGluon-TimeSeries 将它们纳入预测。 该库还利用贝叶斯优化进行超参数调整,通过调整复杂模型达到最佳模型配置。 最后,AutoGluon-TimeSeries 将最好的统计方法和基于 ML 的方法结合到一个针对手头问题优化的模型集合中。

在本文中,我们展示了 AutoGluon-TimeSeries 在快速构建强大的预测器方面的易用性。

开始使用 AutoGluon-TimeSeries

首先,您需要安装 AutoGluon,这可以在 UNIX shell 上使用 pip 轻松完成:

pip install "autogluon>=0.6"

AutoGluon-TimeSeries 介绍了 TimeSeriesDataFrame 用于处理包含多个相关时间序列的数据集(有时称为面板数据集)的类。 这些数据帧可以从所谓的长格式数据帧创建,这些数据帧具有排列成行的时间序列 ID 和时间戳。 下面是一个这样的数据示例,取自 M4 竞赛 [3]。 在这里, item_id column 指定单个时间序列的唯一标识符,例如多个产品的每日销售数据的产品ID。 这 target 列是 AutoGluon-TimeSeries 将学会预测的兴趣值。 weekend 是我们生成的一个额外的时变协变量,用于标记观察是否在周末。

我们可以很容易地产生一个新的 TimeSeriesDataFrame 从这个数据集中使用 from_data_frame 构造函数。 请参阅以下 Python 代码:

df = TimeSeriesDataFrame.from_data_frame(raw_data_frame)

一些时间序列数据具有非时变特征(静态特征或项目元数据),可用于训练预测模型。 例如,M4 数据集的每个时间序列都有一个类别变量。 这些可以添加到 TimeSeriesDataFrame 通过设置 static_features 具有新数据框的变量。

使用 AutoGluon-TimeSeries PlatoBlockchain 数据智能轻松准确地进行预测。 垂直搜索。 人工智能。

使用以下代码:

df.static_features = raw_static_features

训练 TimeSeriesPredictor

最后,我们可以调用 TimeSeriesPredictor 适合广泛的预测模型,以构建准确的预测系统。 请参见以下代码:

predictor = TimeSeriesPredictor(
    prediction_length=7,
    eval_metric="MASE",
    known_covariates_names=["weekend"],
)

在这里,我们指定 TimeSeriesPredictor 应该生成模型来预测接下来的七个时间段,并通过使用平均绝对比例误差来判断最佳模型(马斯). 此外,我们指出随时间变化的协变量 weekend 在数据集中可用。 我们现在可以将预测对象放在 TimeSeriesDataFrame 较早制作:

predictor.fit(df, presets="medium_quality", time_limit=1800)

除了提供训练数据外,我们还要求预测器使用 “medium_quality” 预设。 AutoGluon-TimeSeries 带有多个预设,用于选择要考虑的模型子集以及调整它们所花费的时间,管理训练速度与准确性之间的权衡。 除了预设之外,更有经验的用户可以使用 hyperparameters 参数以精确指定组件模型以及要在其上设置的超参数。 我们还指定了 1,800 秒的时间限制,在此之后预测器停止训练。

在引擎盖下,AutoGluon-TimeSeries 在指定的时间范围内训练尽可能多的模型,从朴素但强大的基线开始,并致力于基于提升树和神经网络模型的更复杂的预测器。 通过调用 predictor.leaderboard(),我们可以看到它训练过的所有模型的列表,以及每个模型的准确率分数和训练时间。 请注意,每个 AutoGluon-TimeSeries 模型都以“越高越好”的格式报告其错误,这意味着大多数预测错误度量在报告时都会乘以 -1。 请参阅以下示例:

              model  score_val  pred_time_val  fit_time_marginal  fit_order
0  WeightedEnsemble  -0.612510      15.406334          48.428711          8
1  AutoGluonTabular  -0.654924       1.068694         104.208688          6
2            DeepAR  -0.673366       6.731659        1065.956648          7
3     SeasonalNaive  -1.035286       0.410615           0.000742          2
4               ETS  -1.073640       5.832542           0.000584          3
5             Theta  -1.107362       1.773439           0.000614          4
6             ARIMA  -3.006273       2.483140           0.000625          5
7             Naive  -3.427339      29.532215           0.000577          1

使用 TimeSeriesPredictor 进行预测

最后,我们可以使用预测器来预测一个中的所有时间序列 TimeSeriesDataFrame, 7 天后的未来。 请注意,因为我们使用了假设在未来已知的时变协变量,所以这些也应该在预测时指定。 请参见以下代码:

predictions = predictor.predict(
	df,
	known_covariates=future_known_covariates
)

默认情况下,AutoGluon-TimeSeries 提供目标值的点预测和概率(分位数)预测。 概率预测在许多规划任务中都是必不可少的,它们可用于灵活地计算间隔,从而支持下游任务,例如库存和容量规划。

使用 AutoGluon-TimeSeries PlatoBlockchain 数据智能轻松准确地进行预测。 垂直搜索。 人工智能。

以下是演示点预测和预测区间的样本预测图。

使用 AutoGluon-TimeSeries PlatoBlockchain 数据智能轻松准确地进行预测。 垂直搜索。 人工智能。

结论

AutoGluon-TimeSeries 为预测人员和数据科学家提供了一种快速简便的方法来构建强大的预测模型。 除了本文中展示的一些库的常用功能外,AutoGluon-TimeSeries 还提供了一组为高级用户配置预测的方法。 预测器也很容易训练、部署和大规模服务 亚马逊SageMaker, 使用 AutoGluon 深度学习 集装箱.

有关使用 AutoGluon 的更多详细信息、示例、教程以及 AutoGluon 解决的其他任务,例如学习表格或多模式数据,请访问 自动胶. 要开始使用 AutoGluon-TimeSeries,请查看我们的 快速入门教程 或我们的 深度教程 深入了解图书馆提供的所有功能。 关注 AutoGluon Twitter, 并为我们加注星标 GitHub上 被告知最新的更新。

如需使用专用计算和工作流、企业级支持、预测可解释性等进行大规模预测,另请查看 亚马逊预报.

参考资料

[1] Salinas、David、Valentin Flunkert、Jan Gasthaus 和 Tim Januschowski。 “DeepAR:使用自回归循环网络进行概率预测。” 国际预测杂志 36. 3 (2020): 1181-1191。

[2] Lim、Bryan、Sercan O Arik、Nicolas Loeff 和 Tomas Pfister。 “用于可解释的多水平时间序列预测的时间融合变压器。” 国际预测杂志 37.4(2021):1748 1764。

[3] Makridakis、Spyros、Evangelos Spiliotis 和 Vassilios Assimakopoulos。 “M4 竞赛:100,000 个时间序列和 61 种预测方法。” 国际预测杂志 36.1(2020):54 74。


关于作者

使用 AutoGluon-TimeSeries PlatoBlockchain 数据智能轻松准确地进行预测。 垂直搜索。 人工智能。土库曼蚕儿 是 Amazon Web Services 的应用科学家,除了开发 AutoGluon-TimeSeries 之外,他还致力于解决机器学习和预测交叉领域的问题。 在加入 AWS 之前,他曾在管理咨询行业担任数据科学家,为金融服务和电信行业的全球项目服务。 Caner 的个人研究兴趣涵盖一系列主题,包括预测、因果推理和 AutoML。

使用 AutoGluon-TimeSeries PlatoBlockchain 数据智能轻松准确地进行预测。 垂直搜索。 人工智能。亚历山大·舒尔 是 Amazon Web Services 的应用科学家,他在 AutoGluon-TimeSeries 中从事时间序列预测方面的工作。 在加入 AWS 之前,他在德国慕尼黑工业大学完成了机器学习博士学位,研究事件数据的概率模型。 他的研究兴趣包括时态数据的机器学习和生成建模。

使用 AutoGluon-TimeSeries PlatoBlockchain 数据智能轻松准确地进行预测。 垂直搜索。 人工智能。尼克埃里克森 是 Amazon Web Services 的高级应用科学家。 他在明尼苏达大学双城分校获得计算机科学与工程硕士学位。 他是开源 AutoML 框架 AutoGluon 的合著者和首席开发人员。 从 2018 年开始作为个人竞赛 ML 工具包开始,Nick 不断扩展 AutoGluon 的功能,并于 2019 年加入 Amazon AI 以开源该项目并全职致力于推进 AutoML 的最新技术。

时间戳记:

更多来自 AWS机器学习