PREDICTION_PROBABILITY
構文
prediction_probability::=
prediction_probability_ordered::=
分析構文
prediction_prob_analytic::=
mining_attribute_clause::=
mining_analytic_clause::=
関連項目:
mining_analytic_clause
の構文、セマンティクスおよび制限事項の詳細は、「分析ファンクション」を参照してください。
目的
PREDICTION_PROBABILITY
は、選択内に含まれる各行の確率を返します。確率は、最も高確率のクラスまたは指定されたclass
を参照します。返される確率のデータ型は、BINARY_DOUBLE
です。
PREDICTION_PROBABILITY
では、分類または異常検出を実行できます。分類の場合、返される確率は予測されたターゲット・クラスを参照します。異常検出の場合、返される確率は分類1
(通常の行)または0
(異常な行)を参照します。
PREDICTION_PROBABILITY
とPREDICTION
ファンクションを組み合せて使用すると、予測とその予測の確率を取得できます。
構文の選択
PREDICTION_PROBABILITY
は、データにマイニング・モデル・オブジェクトを適用することでデータにスコアを付けます。または、1つ以上の一時マイニング・モデルを作成して適用する分析句を実行して、動的にデータをマイニングします。構文または分析構文を選択します。
-
構文: 事前に定義されたモデルでデータにスコアを付ける場合は、
prediction_probability
構文を使用します。分類または異常検出を実行するモデルの名前を指定します。MSET-SPRTモデルなど、順序付けされたデータを必要とするモデルには、
prediction_probability_ordered
構文を使用します。prediction_probability_ordered
構文には、order_by_clause
句が必要です。prediction_probability_ordered
構文の制限事項は、問合せのWHERE
句で使用できないことです。また、query_partition_clause
やwindowing_clause
をprediction_probability_ordered
構文とともに使用することはできません。 -
分析構文: 事前定義されたモデルなしで、データにスコアを付ける場合は、分析構文を使用します。分析構文は、
mining_analytic_clause
を使用します。これは、複数のモデル構築のためにデータをパーティション化する必要がある場合に指定します。mining_analytic_clause
は、query_partition_clause
とorder_by_clause
をサポートします。(「analytic_clause::=」を参照)-
分類の場合は、
FOR
expr
を指定します。expr
は、文字データ型のターゲット列を特定する式です。 -
異常検出の場合は、キーワード
OF ANOMALY
を指定します。
-
PREDICTION_PROBABILITY
ファンクションの構文では、パーティション化されたモデルをスコアリングするときに、オプションのGROUPING
ヒントを使用できます。「GROUPINGヒント」を参照してください。
mining_attribute_clause
mining_attribute_clause
は、スコアの予測子として使用する列の属性を特定します。このファンクションが分析構文で起動された場合は、これらの予測子が一時モデルの構築にも使用されます。mining_attribute_clause
は、PREDICTION
ファンクションと同様に動作します。(「mining_attribute_clause::=」を参照)
関連項目:
-
スコアリングの詳細は、Oracle Machine Learning for SQLユーザーズ・ガイドを参照してください。
-
予測Oracle Machine Learning for SQLの詳細は、Oracle Machine Learning for SQL概要を参照してください。
ノート:
次の例は、『Oracle Machine Learning for SQL』のサンプル・プログラムからの抜粋です。サンプル・プログラムの詳細は、Oracle Machine Learning for SQLユーザーズ・ガイドの「付録A」を参照してください。
例
次の例では、提携カードを使用している可能性が最も高いイタリア在住の顧客を10人戻します。
SELECT cust_id FROM ( SELECT cust_id FROM mining_data_apply_v WHERE country_name = 'Italy' ORDER BY PREDICTION_PROBABILITY(DT_SH_Clas_sample, 1 USING *) DESC, cust_id) WHERE rownum < 11; CUST_ID ---------- 100081 100179 100185 100324 100344 100554 100662 100733 101250 101306
分析の例
この例では、mining_data_one_class_v
内のデータで最も標準的でない行を特定します。婚姻区分の各種別が個別に考慮されるため、婚姻区分グループごとに最も異常な行が返されるようになります。
この問合せは、異常な行の判断に最も影響を与える属性を返します。PARTITION BY
句により、婚姻区分ごとに構築され適用される個別のモデルが生成されます。区分がMabsentのレコードは1つのみであるため、そのパーティションに作成されるモデルはありません(詳細も表示されません)。
SELECT cust_id, cust_marital_status, rank_anom, anom_det FROM (SELECT cust_id, cust_marital_status, anom_det, rank() OVER (PARTITION BY CUST_MARITAL_STATUS ORDER BY ANOM_PROB DESC,cust_id) rank_anom FROM (SELECT cust_id, cust_marital_status, PREDICTION_PROBABILITY(OF ANOMALY, 0 USING *) OVER (PARTITION BY CUST_MARITAL_STATUS) anom_prob, PREDICTION_DETAILS(OF ANOMALY, 0, 3 USING *) OVER (PARTITION BY CUST_MARITAL_STATUS) anom_det FROM mining_data_one_class_v )) WHERE rank_anom < 3 order by 2, 3; CUST_ID CUST_MARITAL_STATUS RANK_ANOM ANOM_DET ------- ------------------- ---------- ----------------------------------------------------------- 102366 Divorc. 1 <Details algorithm="Support Vector Machines" class="0"> <Attribute name="COUNTRY_NAME" actualValue="United Kingdom" weight=".069" rank="1"/> <Attribute name="AGE" actualValue="28" weight=".013" rank="2"/> <Attribute name="YRS_RESIDENCE" actualValue="4" weight=".006" rank="3"/> </Details> 101817 Divorc. 2 <Details algorithm="Support Vector Machines" class="0"> <Attribute name="YRS_RESIDENCE" actualValue="8" weight=".018" rank="1"/> <Attribute name="EDUCATION" actualValue="PhD" weight=".007" rank="2"/> <Attribute name="CUST_INCOME_LEVEL" actualValue="K: 250\,000 - 299\,999" weight=".006" rank="3"/> </Details> 101713 Mabsent 1 101790 Married 1 <Details algorithm="Support Vector Machines" class="0"> <Attribute name="COUNTRY_NAME" actualValue="Canada" weight=".063" rank="1"/> <Attribute name="EDUCATION" actualValue="7th-8th" weight=".011" rank="2"/> <Attribute name="HOUSEHOLD_SIZE" actualValue="4-5" weight=".011" rank="3"/> </Details> . . .