Skip to main content

This documentation is for an older version of this product. See the latest version of this content.Opens in a new tab

TRAIN MODEL (SQL)

機械学習モデルをトレーニングします。

Synopsis

TRAIN MODEL model-name [ AS preferred-name ] [ NOT DEFAULT] [ FOR label-column ]      [ WITH feature-column-clause ] [ FROM model-source ] [ USING json-object ] 

引数

model-name トレーニングする機械学習モデルの名前。
AS preferred-name オプション — トレーニングされたモデルを保存する代替名。この後の説明を参照してください。
NOT DEFAULT オプション — 既定のトレーニング済みモデルとして設定せずにモデルをトレーニングするための節。この後の説明を参照してください。
FOR label-column オプション — 予測される列名 (ラベル列)。この後の説明を参照してください。
WITH feature-column-clause オプション — 列名として、または列名のコンマ区切りリストとしての、モデル (特徴列) への入力。
FROM model-source モデルの構築元にするテーブルまたはビュー。テーブルビュー、または結合の結果です。この後の説明を参照してください。
USING json-object-string オプション — 1 つ以上のキーと値のペアを指定する JSON 文字列。この後の説明を参照してください。

説明

TRAIN MODEL 文はプロバイダに、指定したモデル定義を使用してモデルをトレーニングするよう伝えます。プロバイダは、ML 構成によって指定されます。

FROM

FROM 節は、モデルをトレーニングするためのデータを提供します。

  • CREATE MODEL 文で FROM 節を指定しなかった場合、この節は必須です。

  • CREATE MODEL 文で FROM 節を指定した場合、この節はオプションです。

FROM の許容される使用と省略を示す例

TRAIN MODEL の FROM

CREATE MODEL model_b PREDICTING ( label ) WITH ( column_1, column_2, column_3)
TRAIN MODEL model_b FROM table

CREATE MODEL の FROM

CREATE MODEL model_a PREDICTING ( label ) FROM table
TRAIN MODEL model_a
Note:

TRAIN MODEL 文から FROM を省略する場合は、CREATE MODEL から既定のクエリを使用します。

WITH

WITH を使用すると、データの特徴列をモデル定義のスキーマに明示的に合わせることができます。各列は、標準の識別子です。

FOR

FOR を使用すると、データのラベル列をモデル定義のスキーマに明示的に合わせることができます。例えば、モデル定義のラベル列には column_a という名前が付けられているが、トレーニング・データでは column_b という名前が付けられている場合、次のように列を合わせることができます。

CREATE MODEL model_a PREDICTING ( column_a ) FROM table_a
TRAIN MODEL model_a FOR column_b FROM table_b

名前付け

AS を使用すると、トレーニングされたモデルに明示的に名前を付けることができます。

モデル定義とトレーニングされたモデルは、同じスキーマに存在しています。トレーニングされたモデルに AS を使用して明示的に名前が付けられていない場合、名前はモデル定義名に実行中の整数が付加されたものになります。INFORMATION_SCHEMA.ML_TRAINED_MODELS テーブルをクエリして、その違いを確認できます。

CREATE MODEL TitanicModel PREDICTING (Survived binary) FROM IntegratedML_dataset_titanic.passenger
TRAIN MODEL TitanicModel
TRAIN MODEL TitanicModel
TRAIN MODEL TitanicModel
TRAIN MODEL TitanicModel AS TrainedTitanic
SELECT MODEL_NAME, TRAINED_MODEL_NAME FROM INFORMATION_SCHEMA.ML_TRAINED_MODELS
MODEL_NAME TRAINED_MODEL_NAME
TitanicModel TitanicModel_t1
TitanicModel TitanicModel_t2
TitanicModel TitanicModel_t3
TitanicModel TrainedTitanic

NOT DEFAULT

各モデル定義には、既定のトレーニング済みモデルがあります。ユーザが指定しない場合、最後にトレーニングされたモデルが既定になります。NOT DEFAULT 節を使用すると、新しいモデルをトレーニングし、それを既定のトレーニング済みモデルにしないことができます。

CREATE MODEL TitanicModel PREDICTING (Survived) FROM IntegratedML_dataset_titanic.passenger
TRAIN MODEL TitanicModel As FirstModel
TRAIN MODEL TitanicModel As SecondModel NOT DEFAULT
SELECT MODEL_NAME, DEFAULT_TRAINED_MODEL_NAME FROM INFORMATION_SCHEMA.ML_MODELS
MODEL_NAME DEFAULT_TRAINED_MODEL_NAME
TitanicModel FirstModel

NOT DEFAULT を使用しない場合、DEFAULT_TRAINED_MODEL フィールドは別の方法で “SecondModel” を読み取ります。

USING 節の考慮事項

トレーニング実行をよりカスタマイズするために、USING 節でプロバイダ固有のパラメータを渡すことができます。この節は、1 つ以上のキーと値のペアで構成される JSON 文字列を受け入れます。使用できるパラメータのリストは、プロバイダによって異なります。

例えば、AutoML をプロバイダとして使用してトレーニングする場合、ランダム・シードを変更できます。

TRAIN MODEL IsSpam USING {"seed": 3}

各プロバイダに渡すことができるパラメータの詳細は、"プロバイダ" を参照してください。

NULL 値を渡す方法

TRAIN MODEL 文のラベル列で NULL 値のデータを渡すと、トレーニングされたモデルの動作が不定になります。このため、データ準備プロセスの一環として、NULL 値がないかどうかを注意深く調べる必要があります。

必要なセキュリティ特権

TRAIN MODEL を呼び出すには、%MANAGE_MODEL 特権が必要です。ない場合、SQLCODE –99 エラーになります (特権違反)。%MANAGE_MODEL 特権を割り当てるには、GRANT コマンドを使用します。

TRAIN MODEL EmailFilter
TRAIN MODEL model_5 AS MyModel USING {"seed": 3}
TRAIN MODEL LoanDefault FROM LoanData

関連項目

FeedbackOpens in a new tab