Skip to content

train_crnn

CRNN のモデル学習を実行します。

実行方式は JSON-RPC v2.0 を利用します。

リクエスト例

CRNN モデル学習を実行するには、プロベナンス API の prov.process のパラメータに method として train_crnn を指定します。

JSON-RPC のリクエスト例は以下のとおりです。

{
  "jsonrpc": "2.0",
  "method": "prov.process",
  "params": {
    "method": "train_crnn",
    "params": {
      "output_ddc": "ddc:model",
      "input_ddc": "ddc:train_data",
      "target_column_name": "ox",
      "prediction_time": 3,
      "crnn_param_json": "{ (パラメータの項目を参照) }",
      "no_exec": true
    },
  },
  "id": "provenance_jsonrpc_id"
}

パラメータ

train_crnn に指定できるパラメータは以下のとおりです。

パラメータ名 データ型 内容 既定値
output_ddc string 出力 ddc 名 必須
output_mode string 出力モード (overwrite または error) error
input_ddc string 入力 ddc 名 必須
target_column_name string 予測対象カラム名 必須
prediction_time number (integer) 予測対象時刻 必須
crnn_param_json string CRNN パラメータ 必須
no_exec boolean 非同期実行とするか false

crnn_param_json には、モデル学習方法を制御する詳細パラメータを指定できます。 指定可能な項目は以下のとおりです。

属性名 (キー名) データ型 既定値
source.date_parts array of string 必須
source.id_column string 必須
source.columns array of string 必須
models array of string 必須
data.scales array of object 必須
data.air_rank_boundaries array of number 必須
data.per number 必須
data.use_idw boolean false
data.spatial_data_block_size number (integer) 16
data.spatial_data_size number (integer) 32
training.max_cnn_epoch number (integer) 2000
training.max_lstm_epoch number (integer) 51
training.need_continue_training boolean true
training.is_softmax boolean false
training.imbalance boolean true
training.cnn_batch_size number (integer) 512
training.rnn_batch_size number (integer) 32
training.time_step number (integer) 24
training.k_fold number (integer) 6

source.date_parts

input_ddc で指定されたテーブルの中で、時刻情報として利用するカラム名を列挙します。

source.id_column

input_ddc で指定されたテーブルの中で、測定地点を一意に特定できるカラム名を指定します。

source.columns

input_ddc で指定されたテーブルの中で、モデル学習の特徴量として利用するカラム名を列挙します。

models

学習対象を指定します。以下の値を一つ以上指定します。

意味
pointwise source.id_column で区別される各測定地点に対して学習する
average 全測定地点の平均値を学習する
maximum 全測定地点の最大値を学習する

data.scales

特徴量として利用する各カラムの正規化係数を指定します。

data.air_rank_boundaries

分類モデルを学習するときの各クラスの境界値を指定します。

data.per

予測目標の正規化係数を指定します。

data.use_idw

入力データに対して IDW (Inverse distance weighting) による空間補間を行います。

data.spatial_data_block_size

IDW での空間データ変換サイズを指定します。

data.spatial_data_size

空間データの出力サイズを指定します。

training.max_cnn_epoch

CRNN モデル学習のうち、CNN の学習における最大エポック数を指定します。

training.max_lstm_epoch

CRNN モデル学習のうち、LSTM の学習における最大エポック数を指定します。

training.need_continue_training

true を指定すると、二段階の学習を行います。

training.is_softmax

true を指定すると分類モデルを学習します。false を指定すると回帰モデルを学習します。

training.imbalance

分類モデルにおいて true を指定すると、クラスの分布に偏りがあることを想定します。

training.cnn_batch_size

CNN の学習でのバッチサイズを指定します。

training.rnn_batch_size

RNN の学習でのバッチサイズを指定します。

training.time_step

予測の際に過去何ステップの時系列を利用するかを指定します。

training.k_fold

学習中の交差検証での分割数を指定します。

入力データ

input_ddc に指定する ddc は以下のスキーマを持つ必要があります。

カラム名 内容 備考
start_datetime 開始時刻 イベントテーブルの必須カラム
end_datetime 終了時刻 イベントテーブルの必須カラム
(測定地点 id) 測定地点を表す id
(属性 1) 任意の属性値 (数値型)
(属性 2) 任意の属性値 (数値型)
(...) 任意の属性値 (数値型)

出力データ

output_ddc に出力される ddc のスキーマは以下のとおりです。 この ddc は CRNN での予測を実行するときに必要です。

カラム名 内容 備考
data_table 学習データのテーブル名 ddc ではなく実テーブル名が記録されます
meshcode 測定地点 id
target_column 予測対象カラム名
prediction_time 予測対象時刻
crnn_param_json CRNN パラメータ
cnn_model_path CNN モデルファイル名
lstm_model_path LSTM モデルファイル名

戻り値

出力 ddc 情報