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

PREDICT (SQL)

特定のトレーニングされたモデルを適用して、提供された各入力行の結果を予測する関数です。

Synopsis

PREDICT( model-name) 
PREDICT( model-name USE  trained-model-name ) 
PREDICT( model-name WITH with-clause ) 
PREDICT( model-name USE  trained-model-name WITH with-clause ) 

引数

model-name モデルの名前。
USE trained-model-name オプション — 既定でないトレーニング済みモデルの名前。この後の説明を参照してください。
WITH with-clause オプション — 次のいずれか
  1. トレーニングされたモデルの入力として提供する特定の列。

  2. 予測を行うための引数のリスト。

この後の説明を参照してください。

説明

PREDICT は、トレーニングされた機械学習モデルを指定されたクエリに適用した結果を返します。これは、行単位で実行されます。

USE

トレーニングされたモデルに、USE によって明示的に名前が付けられていない場合、PREDICT は指定されたモデル定義の既定のトレーニング済みモデルを使用します。

例えば、複数のモデルをトレーニングする場合は、次のようになります。

CREATE MODEL MyModel PREDICTING( label ) FROM data
TRAIN MODEL MyModel AS FirstModel
TRAIN MODEL MyModel AS SecondModel NOT DEFAULT

FirstModel は、MyModel の既定のモデルです。つまり、PREDICT クエリは予測に FirstModel を使用します。SecondModel を使用するよう指定する場合は、次のようになります。

PREDICT( MyModel USE SecondModel)

WITH

FROM 節を使用してデータセットを指定する際、PREDICT 関数は、暗黙的に、指定したデータセットの特徴列を、モデル内の特徴列にマップします。WITH 節を使用することにより、以下のいずれかを行うことができます。

  • データセットとモデル間の列のマッピングを指定します。以下に例を示します。

    SELECT PREDICT(Trained_Model WITH age = year) FROM dataset
    

    このクエリは、Trained_Modelage 列を datasetyear 列に合わせます。

    中括弧を使用して、複数の列をマップできます。

    SELECT PREDICT(Trained_Model WITH {age = year, income = salary}) FROM dataset
    

    WITH 節内でのこれらの列の順序は重要ではなく、欠落している列名は FROM 節から取得されます。

  • 予測を行うための引数のリストを指定します。この形式の WITH を使用する場合、FROM 節は指定しません。以下に例を示します。

    SELECT PREDICT(Flower_Model WITH (5.1, 3.5, 1.4, 0.2, 'setosa'))
    

    このクエリは、式 (5.1, 3.5, 1.4, 0.2, 'setosa') に対して Flower_Model を使用して予測を行います。

    引数は、CREATE MODEL 文で指定したとおりの順序にする必要があります。欠落している引数は、空のコンマで指定できます。以下に例を示します。

    SELECT PREDICT(Flower_Model WITH (5.1, , 1.4, , 'setosa'))
    

    中括弧を使用して、複数の引数セットを指定できます。

    SELECT PREDICT(Flower_Model WITH ({5.1, 3.5, 1.4, 0.2, 'setosa'}, {6.4, 3.2, 4.3, 1.2, 'versicolor'}))
    

必要なセキュリティ特権

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

CREATE MODEL HousePriceModel PREDICTING( HousePrice ) FROM housing_data_2019
TRAIN MODEL HousePriceModel
SELECT * FROM housing_data_2020 WHERE PREDICT( HousePriceModel ) > 500000
CREATE MODEL PatientReadmission PREDICTING ( IsReadmitted ) FROM patient_data
TRAIN MODEL PatientReadmission
SELECT *, PREDICT( PatientReadmission ) FROM new_patient_data

関連項目

FeedbackOpens in a new tab