ラベル | 説明 | データ タイプ |
入力時系列データ | 将来の時間ステップの予測に使用する変数を含む 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 行が検証データとして使用されます。 デフォルトは合計時間ステップ数の 10 パーセントです。 理想的には、入力時空間キューブの合計時間ステップ数の 5 パーセント以上にします。
| Long |
モデル タイプ (オプション) | モデルのトレーニングに使用されるモデル アーキテクチャを指定します。
| String |
バッチ サイズ (オプション) | 1 回に処理されるサンプルの数。 デフォルトは 64 です。 コンピューターの GPU に応じて、この数字を 8、16、32、64 などに変更できます。 | Long |
モデル引数 (オプション) | 各モデルに使用される追加のモデル引数。 これらの引数を使用して、モデルの複雑さとサイズを調整できます。 モデル アーキテクチャ、サポートされるモデル引数、それらのデフォルト値については、「時系列予測モデルの仕組み」をご参照ください。 | Value Table |
モデルの改善がなくなった時点でトレーニングを停止 (オプション) | 5 回の連続エポックの後に検証ロスで改善が登録されない場合にモデルのトレーニングを停止するかどうかを指定します。
| Boolean |
出力フィーチャクラス (オプション) | 時空間キューブ内のすべてのロケーションの出力フィーチャクラスで、予測される値がフィールドとして格納されます。 検証データセットのトレーニング済みモデルの予測を使用してフィーチャクラスが作成されます。 出力には最終的な時間ステップの予測が表示され、検証セットの時系列予測を示すポップアップ チャートが含まれます。 | Feature Class |
出力キューブ (オプション) | 入力時空間キューブの値を含み、対応する検証時間ステップの予測値を置き換える出力時空間キューブ (.nc ファイル)。 | File |
複数ステップ (オプション) | ワンステップまたは複数ステップのアプローチを多変量時系列予測モデルのトレーニングに使用するかどうかを指定します。
| Boolean |
サマリー
時空間キューブの時系列データを使用して、ディープ ラーニング ベースの時系列予測モデルをトレーニングします。 トレーニング済みモデルは、[時系列モデルを使用した予測 (Forecast Using Time Series Model)] ツールを使用した時空間キューブの各場所における値の予測に使用できます。
時系列データはさまざまなトレンドに従うことができ、複数レベルの季節性があります。 統計的アプローチに基づく従来の時系列予測モデルは、データのトレンドと季節性パターンに応じて異なる方法で実行されます。 ディープ ラーニング ベースのモデルは学習する能力が高く、トレーニング データの量が十分にあれば、さまざまな種類の時系列で結果を提供できます。
このツールは、Fully Connected Network (FCN)、Long Short-Term Memory (LSTM)、InceptionTime、ResNet、ResCNN などのさまざまなディープ ラーニング ベースのモデルを使用して時系列予測モデルをトレーニングします。 これらのモデルでは、複数回の従属変数からモデルが学習して将来の値を予測する多変量時系列がサポートされています。 トレーニング済みモデルはディープ ラーニング パッケージ ファイル (.dlpk) として保存され、[時系列モデルを使用した予測 (Forecast Using Time Series Model)] ツールによる将来の値の予測に使用できます。
使用法
ArcGIS AllSource で 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 環境を指定します。
このツールを使用して、一変量時系列と多変量時系列の両方をモデル化できます。 予測対象変数に関連する他の変数が時空間キューブにある場合、これらの変数を説明変数として含めることで予測を改善できます。
一変量時系列予測はワンステップ手法のみを使用して予測されます。これは、デフォルトの手法でもあります。
多変量時系列予測は、2 つの異なるアプローチ (ワンステップ予測と複数ステップ予測) で使用できます。 複数の説明トレーニング変数を選択すると、[複数ステップ] パラメーターがアクティブになります。
ワンステップ手法の実行中に、モデルは各時間ステップで新しいデータにより更新されるため、リアルタイム アプリケーションに最適です。 ただし、モデルは各時間ステップで更新されるため、予測内のエラーが時間経過とともに累積し、長期予測の精度が低くなる可能性があります。 複数ステップ予測を使用すると、モデルは現在の時間ステップを超える将来のデータ ポイントを複数予測します。 たとえば、次の 20 個の時間ステップを予測することを目標としている場合、モデルは連続する 20 個の予測を一度に生成します。 複数ステップ予測では、モデルはより大局的な時系列を考慮するため、長期的なトレンドとパターンをより効果的に取得できます。 モデルは将来の時間ステップを複数予測するため、エラーが累積する可能性が減り、長期予測の精度が高くなります。 ただし、モデルは複数のステップを一度に予測するため、データ内のリアルタイムの変化に対応する軽快さが失われる可能性があります。 この 2 つのアプローチのどちらを選択するかは、時系列予測タスクの特定の要件と特性によって決まります。
[シーケンス長] パラメーターは時系列予測モデルの結果に影響し、次回の時間ステップを予測する入力として使用する過去の時間ステップの数として定義できます。 シーケンス長が n の場合、モデルは次回の時間ステップを予測する入力として最後の n 個の時間ステップを使用します。 このパラメーター値は、検証時間ステップ数を除外した後に残った入力時間ステップの合計数よりも大きくすることはできません。
時空間キューブの各ロケーションで独立した予測モデルを構築するのではなく、このツールは各ロケーションのトレーニング データを使用して単一のグローバル予測モデルをトレーニングします。 このグローバル モデルを使用して、[時系列モデルを使用した予測 (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}, {out_cube}, {multistep})
名前 | 説明 | データ タイプ |
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 行が検証データとして使用されます。 デフォルトは合計時間ステップ数の 10 パーセントです。 理想的には、入力時空間キューブの合計時間ステップ数の 5 パーセント以上にします。
| Long |
model_type (オプション) | モデルのトレーニングに使用されるモデル アーキテクチャを指定します。
| String |
batch_size (オプション) | 1 回に処理されるサンプルの数。 デフォルトは 64 です。 コンピューターの GPU に応じて、この数字を 8、16、32、64 などに変更できます。 | Long |
arguments [arguments,...] (オプション) | 各モデルに使用される追加のモデル引数。 これらの引数を使用して、モデルの複雑さとサイズを調整できます。 モデル アーキテクチャ、サポートされるモデル引数、それらのデフォルト値については、「時系列予測モデルの仕組み」をご参照ください。 | Value Table |
early_stopping (オプション) | 5 回の連続エポックの後に検証ロスで改善が登録されない場合にモデルのトレーニングを停止するかどうかを指定します。
| Boolean |
out_features (オプション) | 時空間キューブ内のすべてのロケーションの出力フィーチャクラスで、予測される値がフィールドとして格納されます。 検証データセットのトレーニング済みモデルの予測を使用してフィーチャクラスが作成されます。 出力には最終的な時間ステップの予測が表示され、検証セットの時系列予測を示すポップアップ チャートが含まれます。 | Feature Class |
out_cube (オプション) | 入力時空間キューブの値を含み、対応する検証時間ステップの予測値を置き換える出力時空間キューブ (.nc ファイル)。 | File |
multistep (オプション) | ワンステップまたは複数ステップのアプローチを多変量時系列予測モデルのトレーニングに使用するかどうかを指定します。
| Boolean |
コードのサンプル
この例では、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
)