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 情報