38.17 PREDICTION_SET
構文
prediction_set::=
分析構文
prediction_set_analytic::=
cost_matrix_clause::=
mining_attribute_clause::=
mining_analytic_clause::-
関連項目:
mining_analytic_clause
の構文、セマンティクスおよび制限事項の詳細は、「分析ファンクション」を参照してください。
目的
PREDICTION_SET
は、選択内に含まれる各行の確率またはコストとともに一連の予測を戻します。戻り値は、フィールド名がPREDICTION_ID
およびPROBABILITY
またはCOST
のオブジェクトのVARRAYです。予測識別子(ID)は、OracleのNUMBER
です。確率とコストのフィールドは、BINARY_DOUBLE
です。
PREDICTION_SET
では、分類または異常検出を実行できます。分類の場合、戻り値は予測されたターゲット・クラスを参照します。異常検出の場合、戻り値は分類1
(通常の行)または0
(異常な行)を参照します。
bestNおよびcutoff
bestN
とcutoff
を指定すると、このファンクションから返される予測の数を制限できます。デフォルトでは、bestN
およびcutoff
がnullであり、すべての予測が戻されます。
-
bestN
は、最も確率が高いか、コストが低いN
個の予測です。N
番目の確率またはコストを持つ予測が複数ある場合でも、ファンクションが選択するのはそのうち1つのみです。 -
cutoff
は、値のしきい値です。cutoff
以上の確率か、cutoff
以下のコストの予測のみが返されます。cutoff
のみでフィルタ処理するには、bestN
にNULL
を指定します。問合せに使用するcost_matrix_clause
にCOST MODEL AUTO
を指定すると、cutoff
は無視されます。
cutoff
とともにbestN
を指定して、cutoff
以上の最も確率が高い最大N
個の予測を戻すことができます。コストが使用される場合、cutoff
とともにbestN
を指定して、cutoff以下の最もコストが低い最大N
個の予測を戻します。
cost_matrix_clause
最も悪影響を及ぼす誤分類を最小限に抑えるために、cost_matrix_clause
をバイアス係数として指定できます。cost_matrix_clause
は、「PREDICTION_COST」で説明されているように動作します。
構文の選択
PREDICTION_SET
は、2つの方法のどちらかでデータにスコアを付けます。1つの方法では、データにマイニング・モデル・オブジェクトを適用します。もう1つの方法では、1つ以上の一時マイニング・モデルを作成して適用する分析句を実行して動的にデータをマイニングします。構文または分析構文を選択します。
-
構文 — 事前に定義されたモデルでデータにスコアを付ける場合は、最初の構文を使用します。分類または異常検出を実行するモデルの名前を指定します。
-
分析構文 — 事前定義されたモデルなしで、データにスコアを付ける場合は、分析構文を使用します。分析構文は、
mining_analytic_clause
を使用します。これは、複数のモデル構築のためにデータをパーティション化する必要がある場合に指定します。mining_analytic_clause
は、query_partition_clause
とorder_by_clause
をサポートします。(「analytic_clause::=」を参照。)-
分類の場合は、
FOR
expr
を指定します。expr
は、文字データ型のターゲット列を特定する式です。 -
異常検出の場合は、キーワード
OF ANOMALY
を指定します。
-
PREDICTION_SET
ファンクションの構文では、パーティション化されたモデルをスコアリングするときに、オプションのGROUPING
ヒントを使用できます。「GROUPINGヒント」を参照してください。
mining_attribute_clause
mining_attribute_clause
は、スコアの予測子として使用する列の属性を特定します。このファンクションが分析構文で起動された場合は、これらの予測子が一時モデルの構築にも使用されます。mining_attribute_clause
は、PREDICTION
ファンクションと同様に動作します。(「mining_attribute_clause」を参照。)
関連項目:
-
スコアリングの詳細は、Oracle Data Miningユーザーズ・ガイドを参照してください。
-
予測データ・マイニングの詳細は、『Oracle Data Mining概要』を参照してください。
ノート:
次に示す例は、Data Miningのサンプル・プログラムからの抜粋です。サンプル・プログラムの詳細は、Oracle Data Miningユーザーズ・ガイドの「付録A」を参照してください。
例
この例では、100006より小さいIDを持つ顧客が提携カードを使用する予測とコストを示します。この例のターゲットはバイナリですが、このような問合せは低、中、高などの複数クラスの分類にも有効です。
SELECT T.cust_id, S.prediction, S.probability, S.cost FROM (SELECT cust_id, PREDICTION_SET(dt_sh_clas_sample COST MODEL USING *) pset FROM mining_data_apply_v WHERE cust_id < 100006) T, TABLE(T.pset) S ORDER BY cust_id, S.prediction; CUST_ID PREDICTION PROBABILITY COST ---------- ---------- ------------ ------------ 100001 0 .966183575 .270531401 100001 1 .033816425 .966183575 100002 0 .740384615 2.076923077 100002 1 .259615385 .740384615 100003 0 .909090909 .727272727 100003 1 .090909091 .909090909 100004 0 .909090909 .727272727 100004 1 .090909091 .909090909 100005 0 .272357724 5.821138211 100005 1 .727642276 .272357724