38.14 PREDICTION_COST
構文
prediction_cost::=
分析構文
prediction_cost_analytic::=
cost_matrix_clause::=
mining_attribute_clause::=
mining_analytic_clause::=
関連項目:
mining_analytic_clause
の構文、セマンティクスおよび制限事項の詳細は、「分析ファンクション」を参照してください。
目的
PREDICTION_COST
は、選択内に含まれる各行のコストを返します。コストは、最もコストが低いクラスまたは指定されたclass
を参照します。コストは、BINARY_DOUBLE
として返されます。
PREDICTION_COST
では、分類または異常検出を実行できます。分類の場合、返されるコストは予測されたターゲット・クラスを参照します。異常検出の場合、返されるコストは分類1
(通常の行)または0
(異常な行)を参照します。
PREDICTION_COST
とPREDICTION
ファンクションを組み合せて使用すると、予測とその予測のコストを取得できます。
cost_matrix_clause
コストは、最も悪影響を及ぼす誤分類を最小化するためのバイアス係数です。たとえば、偽陽性は、偽陰性よりもコストが高いとみなされることがあります。コストは、モデルに関連付けられるコスト・マトリックスで指定するか、VALUES
句にインラインで定義します。すべての分類アルゴリズムは、スコアリングに影響するようにコストを使用できます。
コストを使用してモデルの作成に影響を与えられるアルゴリズムは、デシジョン・ツリーのみです。デシジョン・ツリー・モデルの作成に使用したコスト・マトリックスは、そのモデルに対するデフォルトのスコアリング・マトリックスにもなります。
次のコスト・マトリックス表では、1
に誤分類すると、0
に誤分類するよりもコストが5倍かかることを示しています。
ACTUAL_TARGET_VALUE PREDICTED_TARGET_VALUE COST ------------------- ---------------------- ---------- 0 0 0 0 1 1 1 0 5 1 1 0
cost_matrix_clause
の指定内容は、次のとおりです。
-
COST
MODEL
は、モデルに関連付けられたコスト・マトリックスを考慮して、スコアリングする必要があることを示します。コスト・マトリックスが存在しない場合、このファンクションはエラーを返します。 -
COST
MODEL
AUTO
は、コスト・マトリックスが存在するかどうか不明なことを示します。コスト・マトリックスが存在する場合、このファンクションはコスト・マトリックスを使用して、コストが最小の予測を返します。それ以外の場合、このファンクションは、最も高確率の予測を返します。 -
VALUES
句では、class_value
にインラインのコスト・マトリックスを指定します。たとえば、1
に誤分類すると、0
に誤分類するよりも5倍コストがかかることを、次のように指定できます。PREDICTION (nb_model COST (0,1) VALUES ((0, 1),(1, 5)) USING *)
スコアリングのコスト・マトリックスがあるモデルを起動するときに、インラインのコスト・マトリックスを指定すると、インラインのコスト・マトリックスが使用されます。
関連項目:
コスト考慮型予測の詳細は、Oracle Data Miningユーザーズ・ガイドを参照してください。
構文の選択
PREDICTION_COST
は、2つの方法のどちらかでデータにスコアを付けます。1つの方法では、データにマイニング・モデル・オブジェクトを適用します。もう1つの方法では、1つ以上の一時マイニング・モデルを作成して適用する分析句を実行して動的にデータをマイニングします。構文または分析構文を選択します。
-
構文 — 事前に定義されたモデルでデータにスコアを付ける場合は、最初の構文を使用します。分類または異常検出を実行するモデルの名前を指定します。
-
分析構文 — 事前定義されたモデルなしで、データにスコアを付ける場合は、分析構文を使用します。分析構文は、
mining_analytic_clause
を使用します。これは、複数のモデル構築のためにデータをパーティション化する必要がある場合に指定します。mining_analytic_clause
は、query_partition_clause
とorder_by_clause
をサポートします。(「analytic_clause::=」を参照。)-
分類の場合は、
FOR
expr
を指定します。expr
は、文字データ型のターゲット列を特定する式です。 -
異常検出の場合は、キーワード
OF ANOMALY
を指定します。
-
PREDICTION_COST
ファンクションの構文では、パーティション化されたモデルをスコアリングするときに、オプションの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」を参照してください。
例
この例では、最もコストの低い販売キャンペーン(提携カードの売込み)に反応する可能性があるイタリア在住の顧客を10人予測します。
SELECT cust_id FROM (SELECT cust_id,rank() OVER (ORDER BY PREDICTION_COST(DT_SH_Clas_sample, 1 COST MODEL USING *) ASC, cust_id) rnk FROM mining_data_apply_v WHERE country_name = 'Italy') WHERE rnk <= 10 ORDER BY rnk; CUST_ID ---------- 100081 100179 100185 100324 100344 100554 100662 100733 101250 101306