多序列预测
TimeGPT 为多序列预测提供了强大的解决方案,它涉及同时分析多个数据序列,而不是单个序列。该工具可以使用大量序列进行微调,使您能够根据自己的特定需求或任务定制模型。
请注意,预测仍然是单变量的。这意味着尽管 TimeGPT 是一个全局模型,但它不会考虑目标序列中的特征间关系。然而,TimeGPT 支持使用外部变量,例如分类变量(例如,类别、品牌)、数值变量(例如,温度、价格)或甚至特殊假日。
让我们看看实际操作。
1. 导入包
首先,我们安装并导入所需的包并初始化 Nixtla 客户端。
像往常一样,我们首先初始化 NixtlaClient
的一个实例。
👍 使用 Azure AI 端点
要使用 Azure AI 端点,请记住同时设置
base_url
参数
nixtla_client = NixtlaClient(base_url="you azure ai endpoint", api_key="your api_key")
2. 加载数据
以下数据集包含欧洲不同电力市场的价格。
TimeGPT 使用 unique_id
列自动检测多个序列。此列包含每个序列的标签。如果此列中有多个唯一值,则表示它正在处理多序列场景。
在此特定情况下,unique_id
列包含值 BE、DE、FR、JPM 和 NP。
unique_id | ds | y | |
---|---|---|---|
0 | BE | 2016-12-01 00:00:00 | 72.00 |
1 | BE | 2016-12-01 01:00:00 | 65.80 |
2 | BE | 2016-12-01 02:00:00 | 59.99 |
3 | BE | 2016-12-01 03:00:00 | 50.69 |
4 | BE | 2016-12-01 04:00:00 | 52.58 |
让我们使用 [NixtlaClient
](https://Nixtla.github.io/nixtla/src/nixtla_client.html#nixtlaclient) 绘制此序列
3. 预测多个序列
为了同时预测所有序列,我们只需将 dataframe 传递给 df
参数。TimeGPT 将自动预测所有序列。
unique_id | ds | TimeGPT | TimeGPT-lo-90 | TimeGPT-lo-80 | TimeGPT-hi-80 | TimeGPT-hi-90 | |
---|---|---|---|---|---|---|---|
0 | BE | 2016-12-31 00:00:00 | 46.151176 | 36.660478 | 38.337019 | 53.965334 | 55.641875 |
1 | BE | 2016-12-31 01:00:00 | 42.426598 | 31.602231 | 33.976724 | 50.876471 | 53.250964 |
2 | BE | 2016-12-31 02:00:00 | 40.242889 | 30.439970 | 33.634985 | 46.850794 | 50.045809 |
3 | BE | 2016-12-31 03:00:00 | 38.265339 | 26.841481 | 31.022093 | 45.508585 | 49.689197 |
4 | BE | 2016-12-31 04:00:00 | 36.618801 | 18.541384 | 27.981346 | 45.256256 | 54.696218 |
📘 Azure AI 中可用的模型
如果您正在使用 Azure AI 端点,请确保设置
model="azureai"
nixtla_client.forecast(..., model="azureai")
对于公共 API,我们支持两种模型:
timegpt-1
和timegpt-1-long-horizon
。默认情况下,使用
timegpt-1
。有关如何以及何时使用timegpt-1-long-horizon
,请参阅此教程。
从上图可以看出,模型有效地为数据集中的每个唯一序列生成了预测。
历史预测
您还可以通过添加 add_history=True
来计算历史预测的预测区间。
要指定置信区间,我们使用 level
参数。在这里,我们传递列表 [80, 90]
。这将计算 80% 和 90% 的置信区间。
unique_id | ds | TimeGPT | TimeGPT-lo-80 | TimeGPT-lo-90 | TimeGPT-hi-80 | TimeGPT-hi-90 | |
---|---|---|---|---|---|---|---|
0 | BE | 2016-12-06 00:00:00 | 55.756332 | 42.066476 | 38.185593 | 69.446188 | 73.327072 |
1 | BE | 2016-12-06 01:00:00 | 52.820206 | 39.130350 | 35.249466 | 66.510062 | 70.390946 |
2 | BE | 2016-12-06 02:00:00 | 46.851070 | 33.161214 | 29.280331 | 60.540926 | 64.421810 |
3 | BE | 2016-12-06 03:00:00 | 50.640892 | 36.951036 | 33.070152 | 64.330748 | 68.211632 |
4 | BE | 2016-12-06 04:00:00 | 52.420410 | 38.730554 | 34.849670 | 66.110266 | 69.991150 |
📘 Azure AI 中可用的模型
如果您正在使用 Azure AI 端点,请确保设置
model="azureai"
nixtla_client.forecast(..., model="azureai")
对于公共 API,我们支持两种模型:
timegpt-1
和timegpt-1-long-horizon
。默认情况下,使用
timegpt-1
。有关如何以及何时使用timegpt-1-long-horizon
,请参阅此教程。
在上图中,我们现在看到了 TimeGPT 为每个序列生成的历史预测,以及 80% 和 90% 的置信区间。