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

PROBABILITY (SQL)

特定のトレーニングされたモデルを適用して、指定されたラベルが予測されたラベル値である確率を返す関数です。これにより、その値の予測の相対的な強度を評価できます。

Synopsis

PROBABILITY ( model-name FOR label-value) 
PROBABILITY ( model-name USE  trained-model-name FOR label-value ) 
PROBABILITY ( model-name FOR label-value WITH  feature-columns-clause ) 
PROBABILITY ( model-name USE  trained-model-name FOR label-value       WITH feature-columns-clause ] ) 

引数

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

説明

PROBABILITY 関数は、特定のモデルを特定のテーブルに適用して、テーブル内の各行について、モデルが指定された値を予測する確率を返します。この確率は、0 から 1 の値として返されます。この関数は、(回帰モデルではなく) 分類モデルでのみ使用できます。

FOR

FOR は、PROBABILITY が確率を求める出力値を提供します。

例を以下に示します。

SELECT * FROM flower_dataset WHERE PROBABILITY(iris_flower FOR 'iris-setosa') > 0.6

iris_flower モデルを使用して、結果が “iris-setosa” である確率が 0.6 を超える flower_dataset の各行を返します。

FOR を省略すると、値は 1 になります。例を以下に示します。

SELECT PROBABILITY(IsSpam) FROM email_data

暗黙的に、次のクエリが生成されます。

SELECT PROBABILITY(IsSpam FOR 1) FROM email_data

FOR に指定した値が、指定されたトレーニング済みモデルに対して無効な場合、SQLCODE –400 エラーが発生して次のメッセージが表示されます。

[%msg: <PREDICT execution error: ERROR #2853: Specified positive label value not found in the dataset.>]

USE

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

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

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

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

PROBABILITY( MyModel FOR label-value USE SecondModel)

WITH

PROBABILITY は、WITH 節がない場合に、指定されたデータセットの特徴列をモデルの特徴列に暗黙的にマッピングする洗練された関数です。WITH 節を使用すると、データセットとモデル間の列のマッピングを指定できます。例を以下に示します。

SELECT PROBABILITY(iris_flower FOR 'iris-setosa' WITH petal_length = length_petal) FROM flower_dataset

このクエリは、iris_flower モデルの petal_length 列を flower_datasetlength_petal 列に合わせます。

必要なセキュリティ特権

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

CREATE MODEL PatientReadmission PREDICTING ( IsReadmitted ) FROM patient_data
TRAIN MODEL PatientReadmission
SELECT * FROM new_patient_data WHERE PROBABILITY( PatientReadmission FOR 1) > 0.8

関連項目

FeedbackOpens in a new tab