使用时间序列模型进行预测 (GeoAI)

摘要

将使用基于深度学习的时间序列预测模型来预测时空立方体每个位置的值,该模型已使用训练时间序列预测模型工具进行训练。

使用情况

  • 您必须在 AllSource 中为 Python 安装适当的深度学习框架。

    了解如何安装 ArcGIS 的深度学习框架

  • 输入是 Esri 模型定义文件 (.emd) 或深度学习包文件 (.dlpk),可使用训练时间序列预测模型工具进行创建。

  • 此工具接受通过聚合点创建时空立方体通过已定义位置创建时空立方体以及通过多维栅格图层创建时空立方体子集时空立方体工具创建的 netCDF 数据

  • 该工具将使用基于深度学习的时间序列预测模型。 深度学习模型具有很高的学习能力,适用于遵循复杂趋势并且难以使用简单的数学函数进行建模的时间序列。 然而,它们需要更大量的训练数据来学习此类复杂趋势,并使用更多的计算资源进行训练和推断。 建议使用 GPU 来运行此工具。

  • 要使用 GPU 运行此工具,请将处理器类型环境设置为 GPU。 如果您具有多个 GPU,还可以指定 GPU ID 环境。

  • 该工具将使用单一的全球预测模型,该模型已根据来自每个位置的时间序列数据进行训练。

  • 输出要素参数值将添加到内容窗格中,并基于保存的最佳模型预测时间步长进行渲染。

  • 该工具会创建地理处理消息和弹出图表,以用于了解和可视化预测结果。 这些消息将包含有关时空立方体结构以及 RMSE 值的汇总统计数据的信息。 可以使用浏览导航工具单击要素以在弹出窗格中显示一个折线图,图中会显示该时空立方体的值以及该位置的拟合值和预测值。

  • 有关运行此工具的要求以及您可能遇到的问题的信息,请参阅深度学习常见问题解答

参数

标注说明数据类型
输入时间序列数据

netCDF 立方体包含将用于预测未来时间步长的变量。 此文件必须具有 .nc 文件扩展名,并且必须使用通过聚合点创建时空立方体通过已定义位置创建时空立方体通过多维栅格图层创建时空立方体工具进行创建。

File
模型定义

将用于进行预测的经过训练的深度学习模型文件(.dlpk.emd)。 该模型可以使用训练时间序列预测模型工具进行训练。

File
输出要素

时空立方体中所有位置的输出要素类,其中的预测值将存储为字段。 该图层将显示对最后的时间步长的预测,并包含弹出图表,其中显示了每个位置的时间序列和预测。

Feature Class
预测时间步长数

一个正整数,指定将用于预测分析变量的时间步长数。 默认值为 2。 此值不能大于输入时空立方体中的时间步长数的百分之五十。

Long
匹配解释变量
(可选)

字段名称从预测集到训练集的映射。 如果训练集和预测集的字段名称不同,请使用此参数。 值为预测数据集中与输入时间序列数据中的字段名称相匹配的字段名称。

Value Table

arcpy.geoai.ForecastUsingTimeSeriesModel(in_cube, in_model_definition, out_features, number_of_timesteps_to_forecast, {match_explanatory_variables})
名称说明数据类型
in_cube

netCDF 立方体包含将用于预测未来时间步长的变量。 此文件必须具有 .nc 文件扩展名,并且必须使用通过聚合点创建时空立方体通过已定义位置创建时空立方体通过多维栅格图层创建时空立方体工具进行创建。

File
in_model_definition

将用于进行预测的经过训练的深度学习模型文件(.dlpk.emd)。 该模型可以使用训练时间序列预测模型工具进行训练。

File
out_features

时空立方体中所有位置的输出要素类,其中的预测值将存储为字段。 该图层将显示对最后的时间步长的预测,并包含弹出图表,其中显示了每个位置的时间序列和预测。

Feature Class
number_of_timesteps_to_forecast

一个正整数,指定将用于预测分析变量的时间步长数。 默认值为 2。 此值不能大于输入时空立方体中的时间步长数的百分之五十。

Long
match_explanatory_variables
[match_explanatory_variables,...]
(可选)

字段名称从预测集到训练集的映射。 如果训练集和预测集的字段名称不同,请使用此参数。 值为预测数据集中与输入时间序列数据中的字段名称相匹配的字段名称。

Value Table

代码示例

ForecastUsingTimeSeriesModel(独立脚本)

本示例介绍了如何使用 ForecastUsingTimeSeriesModel 函数。


# Description: Forecast a time series model on space-time cube data with the trained model 
#              obtained by the TrainTimeSeriesForecastingModel function.

# Import system modules
import arcpy
import os

# Set local variables
datapath  = "path_to_data_for_forecasting" 
out_path = "path_to_gdb_for_forecasting"

model_path = os.path.join(out_path, "model.dlpk")
in_cube = os.path.join(datapath, "test_data")
output_features = os.path.join(out_path, "forecasted_feature.gdb", "forecasted")

# Run Forecast Using Time Series Model 
r = arcpy.geoai.ForecastUsingTimeSeriesModel(
    in_cube,
    model_path,
    output_features,
    number_of_timesteps_to_forecast=2,
    match_explanatory_variables=None
)