VALIDATE MODEL (SQL)
構文
VALIDATE MODEL model-name [ AS validation-run-name ]
[ USE trained-model-name]
[ WITH feature-column-clause ]
FROM model-source
引数
model-name | 検証するモデルの名前。 |
AS validation-run-name | オプション — 検証実行を保存する名前。この後の説明を参照してください。 |
USE trained-model-name | オプション — 検証する既定でないトレーニング済みモデルの名前。この後の説明を参照してください。 |
WITH feature-column-clause | オプション — モデルの検証に使用するデータセットの特定の列。 |
FROM model-source | モデルの検証元にするテーブルまたはビュー。テーブル、ビュー、または結合の結果です。この後の説明を参照してください。 |
説明
VALIDATE MODEL コマンドは、指定されたテスト・データセットでのパフォーマンスに基づいて、特定のトレーニングされたモデルの検証メトリックを計算します。各コマンドは検証実行を作成します。
名前付け
AS を使用すると、検証実行に明示的に名前を付けることができます。
検証実行に AS を使用して明示的に名前が付けられていない場合、名前はトレーニングされたモデルに実行中の整数が付加されたものになります。INFORMATION_SCHEMA.ML_VALIDATION_RUNS テーブルをクエリして、その違いを確認できます。
CREATE MODEL TitanicModel PREDICTING (Survived) FROM IntegratedML_dataset_titanic.passenger
TRAIN MODEL TitanicModel
VALIDATE MODEL TitanicModel FROM IntegratedML_dataset_titanic.passenger
VALIDATE MODEL TitanicModel FROM IntegratedML_dataset_titanic.passenger
VALIDATE MODEL TitanicModel FROM IntegratedML_dataset_titanic.passenger
VALIDATE MODEL TitanicModel AS TitanicValidation FROM IntegratedML_dataset_titanic.passenger
SELECT MODEL_NAME, TRAINED_MODEL_NAME, VALIDATION_RUN_NAME FROM INFORMATION_SCHEMA.ML_VALIDATION_RUNS
MODEL_NAME | TRAINED_MODEL_NAME | VALIDATION_RUN_NAME |
---|---|---|
TitanicModel | TitanicModel_t1 | TitanicModel_t1_v1 |
TitanicModel | TitanicModel_t1 | TitanicModel_t1_v2 |
TitanicModel | TitanicModel_t1 | TitanicModel_t1_v3 |
TitanicModel | TitanicModel_t1 | TitanicValidation |
USE
USE を使用すると、検証を実行するトレーニングされたモデルを指定できます。トレーニングされたモデルが USE で明示的に指定されていない場合は、既定のトレーニング済みモデルが、指定されたモデル定義に対して検証されます。
INFORMATION_SCHEMA.ML_VALIDATION_RUNS テーブルをクエリして、その違いを確認できます。
CREATE MODEL TitanicModel PREDICTING (Survived) FROM IntegratedML_dataset_titanic.passenger
TRAIN MODEL TitanicModel AS FirstModel
TRAIN MODEL TitanicModel AS SecondModel
TRAIN MODEL TitanicModel AS ThirdModel
VALIDATE MODEL TitanicModel FROM IntegratedML_dataset_titanic.passenger
VALIDATE MODEL TitanicModel FROM IntegratedML_dataset_titanic.passenger
VALIDATE MODEL TitanicModel USE FirstModel FROM IntegratedML_dataset_titanic.passenger
VALIDATE MODEL TitanicModel USE SecondModel FROM IntegratedML_dataset_titanic.passenger
SELECT MODEL_NAME, TRAINED_MODEL_NAME FROM INFORMATION_SCHEMA.ML_VALIDATION_RUNS
MODEL_NAME | TRAINED_MODEL_NAME |
---|---|
TitanicModel | ThirdModel |
TitanicModel | ThirdModel |
TitanicModel | FirstModel |
TitanicModel | SecondModel |
FROM の考慮事項
モデルのトレーニングにはトレーニング・セットを使用しましたが、モデルの検証には他のデータ (テスト・データ・セット) を使用する必要があります。トレーニング・データを使用してモデルを検証する場合に評価されるのは適合度のみです。これに対し、モデルの予測パフォーマンスは他のデータで評価します。
このデータは、特徴列とラベル列を含め、トレーニング・データと同じスキーマである必要があります。
必要なセキュリティ特権
VALIDATE MODEL を呼び出すには、%USE_MODEL 特権が必要です。ない場合、SQLCODE –99 エラーになります (特権違反)。%USE_MODEL 特権を割り当てるには、GRANT コマンドを使用します。
検証メトリック
VALIDATE MODEL の出力は、INFORMATION_SCHEMA.ML_VALIDATION_METRICS テーブルで表示可能な一連の検証メトリックです。
回帰モデルでは、以下のメトリックが保存されます。
-
分散
-
決定係数
-
平均二乗誤差
-
二乗平均平方根誤差
分類モデルでは、以下のメトリックが保存されます。
-
適合率 — 真陽性の数を予測される陽性数 (真陽性と疑陽性の合計) で割って計算されます。
-
再現率 — 真陽性の数を実際の陽性数 (真陽性と偽陰性の合計) で割って計算されます。
-
F 値 — 次の式で計算されます。
F = 2 * (適合率 * 再現率) / (適合率 + 再現率)
-
正解率 — 真陽性と真陰性の数を、テスト・セット全体の合計行数 (真陽性、偽陽性、真陰性、偽陰性の合計) で割って計算されます。
-
ROC-AUC — これは、受信者操作特性曲線の下の面積を計算した値です。この値が大きいほど、モデルはクラス間の違いをより的確に認識できます。
例
VALIDATE MODEL PatientReadmission FROM Patient_test
VALIDATE MODEL PatientReadmission AS PatientValidation USE PatientReadmission_H2OModel FROM Patient_test