ラベル | 説明 | データ タイプ |
入力時系列データ | 将来の時間ステップを予測するために使用する変数を含む netCDF キューブ。 このファイルは、.nc ファイル拡張子が付加され、[ポイントの集約による時空間キューブの作成 (Create Space Time Cube By Aggregating Points)] ツール、[定義済みのロケーションから時空間キューブを作成 (Create Space Time Cube From Defined Locations)] ツール、または [多次元ラスター レイヤーから時空間キューブを作成 (Create Space Time Cube from Multidimensional Raster Layer)] ツールで作成されている必要があります。 | File |
出力モデル | トレーニング済みのモデルを格納する出力フォルダーの場所。 トレーニング済みモデルはディープ ラーニング パッケージ ファイル (.dlpk) として保存されます。 | Folder |
分析変数 | 将来の時間ステップについて予測される、データセット内の数値変数。 | String |
シーケンス長 | モデルをトレーニングする際に使用する、以前の時間ステップの数。 データに季節性 (繰り返しサイクル) がある場合は、1 シーズンに対応する長さを入力します。 パラメーター値は、検証時間ステップ数を除外した後に残った合計入力時間ステップ数よりも大きくすることはできません。 | Long |
説明トレーニング変数 (オプション) | モデルのトレーニングに使用される、データからの独立変数。 クラスまたはカテゴリを表す変数の場合に [カテゴリ] チェックボックスをオンにします。 | Value Table |
最大エポック (オプション) | モデルをトレーニングする場合の対象となるエポックの最大数。 デフォルトは 20 です。 | Long |
検証から除外する時間ステップ数 (オプション) | 検証から除外される時間ステップ数。 値として 14 を指定すると、データ フレームの最後の 14 行が検証データとして使用されます。 この値は、入力ステップ数の 25% より大きくできません。 デフォルトは 2 です。 | Long |
モデル タイプ (オプション) | モデルのトレーニングに使用されるモデル構造を指定します。
デフォルト モデル タイプは InceptionTime です。 | String |
バッチ サイズ (オプション) | 1 回に処理されるサンプルの数。 デフォルトは 64 です。 コンピューターの GPU に応じて、この数字を 8、16、32、64 などに変更できます。 | Long |
モデル引数 (オプション) | 各モデルに使用される追加のモデル引数。 これらの引数を使用して、モデルの複雑さとサイズを調整できます。 モデル構造、サポート対象のモデル引数、それらのデフォルト値については、「時系列予測モデルの仕組み」をご参照ください。 | Value Table |
モデルの改善がなくなった時点でトレーニングを停止 (オプション) | 5 回の連続エポックの後に検証ロスで改善が登録されない場合にモデルのトレーニングを停止するかどうかを指定します。
| Boolean |
出力フィーチャクラス (オプション) | 時空間キューブ内のすべてのロケーションの出力フィーチャクラスで、予測される値がフィールドとして格納されます。 検証データセットのトレーニング済みモデルの予測を使用してフィーチャクラスが作成されます。 出力には最終的な時間ステップの予測が表示され、検証セットの時系列の予測を示すポップアップ チャートが含まれます。 | Feature Class |
サマリー
時空間キューブの時系列データを使用してディープ ラーニング ベースの時系列予測モデルをトレーニングします。 トレーニング済みモデルを使用して、[時系列モデルを使用した予測 (Forecast Using Time Series Model)] ツールで時空間キューブの各位置の値を予測できます。
時系列データはさまざまなトレンドに従うことができ、複数レベルの季節性があります。 統計的アプローチに基づく従来の時系列予測モデルは、データのトレンドと季節性パターンに応じて異なる方法で実行されます。 ディープ ラーニング ベースのモデルは学習能力が高く、トレーニング データの量が十分であればさまざまな種類の時系列で結果を提供できます。
このツールでは、Fully Connected Network (FCN)、Long Short-Term Memory (LSTM)、InceptionTime、ResNet、ResCNN などのさまざまなディープ ラーニング ベース モデルを使用して時系列予測モデルをトレーニングします。 これらのモデルでは、複数回の従属変数からモデルが学習して将来の値を予測する多変量時系列がサポートされています。 トレーニング済みモデルはディープ ラーニング パッケージ ファイル (.dlpk) として保存され、[時系列モデルを使用した予測 (Forecast Using Time Series Model)] ツールによる将来の値の予測に使用できます。
使用法
ArcGIS Pro に Python の適切なディープ ラーニング フレームワーク パッケージをインストールする必要があります。
このツールでは、[ポイントの集約による時空間キューブの作成 (Create Space Time Cube By Aggregating Points)] ツール、[定義済みのロケーションから時空間キューブを作成 (Create Space Time Cube From Defined Locations)] ツール、[多次元ラスター レイヤーから時空間キューブを作成 (Create Space Time Cube From Multidimensional Raster Layer)] ツール、および [時空間キューブのサブセット (Subset Space Time Cube)] ツールによって作成された netCDF データを使用できます。
時系列予測ツールセットの他の予測ツールとは異なり、このツールではディープ ラーニング ベースの時系列予測モデルを使用します。 ディープ ラーニング モデルは学習能力が高く、複雑なトレンドに従う時系列に最適であり、シンプルな数学関数ではモデル化が困難です。 ただし、そのような複雑なトレンドの学習に大量のトレーニング データを必要とし、トレーニングと推測により多くの計算リソースを使用します。 このツールの使用には GPU が推奨されています。
-
GPU を使用してこのツールを実行するには、プロセッサ タイプ環境を GPU に設定します。 複数の GPU がある場合は、代わりに GPU ID 環境を指定します。
このツールを使用して、一変量時系列と多変量時系列の両方をモデル化できます。 予測対象変数に関連する他の変数が時空間キューブにある場合、これらの変数を説明変数として含めることで予測を改善できます。
時空間キューブの各ロケーションで独立した予測モデルを構築するのではなく、このツールでは各ロケーションのトレーニング データを使用して単一のグローバル予測モデルがトレーニングされます。 このグローバル モデルを使用して、[時系列モデルを使用した予測 (Forecast Using Time Series Model)] ツールによって各ロケーションの将来の値を予測します。
[出力フィーチャ] パラメーター値は [コンテンツ] ウィンドウに追加され、最終的に予測された時間ステップに基づいてレンダリングされます。
このツールのユース ケースには、過去の売上データに基づいて小売商品の需要を予測するためのモデルのトレーニング、病気のまん延を予測するためのモデルのトレーニング、過去の発電データと気象データに基づく風力発電量の予測などが挙げられます。
検証のとき、どの程度の時間ステップを除外するかは重要な選択です。 除外する時間ステップを増やすと、検証 RMSE を推定する時間ステップが少なくなってしまいます。 除外した時間ステップが少なすぎる場合、検証 RMSE は少ないデータ量を使用して推定を行うため、間違いやすくなります。 検証 RMSE の評価に十分な時間ステップを維持しながら、できる限り多くの時間ステップを除外します。 また、時空間キューブに十分な時間ステップがある場合は、少なくとも予測する時間ステップ数と同じ数の検証における時間ステップを保留します。
このツールの実行要件および発生する可能性のある問題の詳細については、「ディープ ラーニングに関するよくある質問」をご参照ください。
パラメーター
arcpy.geoai.TrainTimeSeriesForecastingModel(in_cube, out_model, analysis_variable, sequence_length, {explanatory_variables}, {max_epochs}, {validation_timesteps}, {model_type}, {batch_size}, {arguments}, {early_stopping}, {out_features})
名前 | 説明 | データ タイプ |
in_cube | 将来の時間ステップを予測するために使用する変数を含む netCDF キューブ。 このファイルは、.nc ファイル拡張子が付加され、[ポイントの集約による時空間キューブの作成 (Create Space Time Cube By Aggregating Points)] ツール、[定義済みのロケーションから時空間キューブを作成 (Create Space Time Cube From Defined Locations)] ツール、または [多次元ラスター レイヤーから時空間キューブを作成 (Create Space Time Cube from Multidimensional Raster Layer)] ツールで作成されている必要があります。 | File |
out_model | トレーニング済みのモデルを格納する出力フォルダーの場所。 トレーニング済みモデルはディープ ラーニング パッケージ ファイル (.dlpk) として保存されます。 | Folder |
analysis_variable | 将来の時間ステップについて予測される、データセット内の数値変数。 | String |
sequence_length | モデルをトレーニングする際に使用する、以前の時間ステップの数。 データに季節性 (繰り返しサイクル) がある場合は、1 シーズンに対応する長さを入力します。 パラメーター値は、検証時間ステップ数を除外した後に残った合計入力時間ステップ数よりも大きくすることはできません。 | Long |
explanatory_variables [explanatory_variables,...] (オプション) | モデルのトレーニングに使用される、データからの独立変数。 クラスまたはカテゴリを表す変数の後に True 値を使用します。 | Value Table |
max_epochs (オプション) | モデルをトレーニングする場合の対象となるエポックの最大数。 デフォルトは 20 です。 | Long |
validation_timesteps (オプション) | 検証から除外される時間ステップ数。 値として 14 を指定すると、データ フレームの最後の 14 行が検証データとして使用されます。 この値は、入力ステップ数の 25% より大きくできません。 デフォルトは 2 です。 | Long |
model_type (オプション) | モデルのトレーニングに使用されるモデル構造を指定します。
デフォルト モデル タイプは InceptionTime です。 | String |
batch_size (オプション) | 1 回に処理されるサンプルの数。 デフォルトは 64 です。 コンピューターの GPU に応じて、この数字を 8、16、32、64 などに変更できます。 | Long |
arguments [arguments,...] (オプション) |
各モデルに使用される追加のモデル引数。 これらの引数を使用して、モデルの複雑さとサイズを調整できます。 モデル構造、サポート対象のモデル引数、それらのデフォルト値については、「時系列予測モデルの仕組み」をご参照ください。 | Value Table |
early_stopping (オプション) | 5 回の連続エポックの後に検証ロスで改善が登録されない場合にモデルのトレーニングを停止するかどうかを指定します。
| Boolean |
out_features (オプション) | 時空間キューブ内のすべてのロケーションの出力フィーチャクラスで、予測される値がフィールドとして格納されます。 検証データセットのトレーニング済みモデルの予測を使用してフィーチャクラスが作成されます。 出力には最終的な時間ステップの予測が表示され、検証セットの時系列の予測を示すポップアップ チャートが含まれます。 | Feature Class |
コードのサンプル
この例では、TrainTimeSeriesForecastingModel 関数を使用する方法を示します。
# Name: TrainTimeSeriesForecastingModel.py
# Description: Train a time series model on space-time cube data with
# different AI models.
# 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")
in_cube = os.path.join(datapath, "test_data")
out_features = os.path.join(out_path, "forecasted_feature.gdb", "forecasted")
# Run TrainTimeSeriesForecastingModel
arcpy.geoai.TrainTimeSeriesForecastingModel(
in_cube,
model_path,
"CONSUMPTION",
12,
None,
20,
2,
"InceptionTime",
64,
None,
True,
out_features
)
ライセンス情報
- Basic: No
- Standard: No
- Advanced: Yes