44.15 PREDICTION_DETAILS
構文
prediction_details::=
分析構文
prediction_details_analytic::=
mining_attribute_clause::=
mining_analytic_clause::=
関連項目:
mining_analytic_clause
の構文、セマンティクスおよび制限事項の詳細は、「分析ファンクション」を参照してください。
目的
PREDICTION_DETAILS
は、選択内に含まれる各行の予測の詳細を返します。戻り値は、予測の属性について記述したXML文字列です。
回帰の場合、返される詳細は予測されたターゲット値を参照します。分類と異常検出の場合、返される詳細は最も高確率のクラスまたは指定されたclass_value
を参照します。
topN
topN
に値を指定すると、このファンクションは予測に最も影響力のあるN
個の属性(スコア)を返します。topN
を指定しないと、このファンクションは最も影響力のある5つの属性を返します。
DESC、ASC、またはABS
返される属性が重みで順序付けされます。属性の重みは、予測に対する正の影響または負の影響を表します。回帰の場合、正の重みは予測される値が大きくなることを示し、負の重みは予測される値が小さくなることを示します。分類と異常検出の場合、正の重みは予測の確率が高くなることを示し、負の重みは予測の確率が低くなることを示します。
デフォルトでは、PREDICTION_DETAILS
は、最大の正の重みを持つ属性を返します(DESC
)。ASC
を指定すると、最大の負の重みを持つ属性が返されます。ABS
を指定すると、正負を問わずに、最大の重みを持つ属性が返されます。結果は、絶対値が高いほうから低いほうに順序付けされています。重みがゼロの属性は、出力に含まれません。
構文の選択
PREDICTION_DETAILS
では、データにマイニング・モデル・オブジェクトを適用してデータにスコアを付けるか、または1つ以上の一時マイニング・モデルを作成して適用する分析句を実行して動的にデータをマイニングすることができます。構文または分析構文を選択します。
-
構文:
prediction_details
構文は、事前に定義されたモデルでデータにスコアを付ける場合に使用します。分類、回帰または異常検出を実行するモデルの名前を指定します。prediction_details_ordered
構文は、MSET-SPRTモデルなど、順序付けされたデータを必要とするモデルに使用します。prediction_details_ordered
構文には、order_by_clause
句が必要です。prediction_details_ordered
構文の制限事項は、問合せのWHERE
句で使用できないことです。また、query_partition_clause
またはwindowing_clause
をprediction_details_ordered
構文で使用することができません。ノート:
MSET-SPRTモデルについてランダム予測が行われている場合、全体のPREDICTION
およびPREDICTION_PROBABILITY
のみが計算され、PREDICTION_DETAILS
はレポートされません。order_by_clause
の詳細は、『Oracle Database SQL言語リファレンス』の分析ファンクションに関する項を参照してください。 -
分析構文:
prediction_details_analytic
構文は、事前定義されたモデルなしでデータにスコアを付ける場合に使用します。分析構文は、mining_analytic_clause
を使用します。これは、複数のモデル構築のためにデータをパーティション化する必要がある場合に指定します。mining_analytic_clause
は、query_partition_clause
とorder_by_clause
をサポートします。(「analytic_clause::=」を参照。)-
分類の場合は、
FOR
expr
を指定します。expr
は、文字データ型のターゲット列を特定する式です。 -
回帰の場合は、
FOR
expr
を指定します。expr
は、数値データ型のターゲット列を特定する式です。 -
異常検出の場合は、キーワード
OF ANOMALY
を指定します。
-
PREDICTION_DETAILS
ファンクションの構文では、パーティション化されたモデルをスコアリングするときに、オプションの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を参照してください。
例
この例では、モデルsvmr_sh_regr_sample
を使用して、データにスコアを付けます。この問合せは、顧客の年齢の予測値が高くなるのに最も影響力がある3つの属性を返します。
SELECT PREDICTION_DETAILS(svmr_sh_regr_sample, null, 3 USING *) prediction_details FROM mining_data_apply_v WHERE cust_id = 100001; PREDICTION_DETAILS --------------------------------------------------------------------------------------- <Details algorithm="Support Vector Machines"> <Attribute name="CUST_MARITAL_STATUS" actualValue="Widowed" weight=".361" rank="1"/> <Attribute name="CUST_GENDER" actualValue="F" weight=".14" rank="2"/> <Attribute name="HOME_THEATER_PACKAGE" actualValue="1" weight=".135" rank="3"/> </Details>
分析構文
この例は、標準的ではない年齢の顧客を動的に特定します。この問合せは、予測される年齢や標準から逸脱した年齢の属性を返します。
SELECT cust_id, age, pred_age, age-pred_age age_diff, pred_det FROM (SELECT cust_id, age, pred_age, pred_det, RANK() OVER (ORDER BY ABS(age-pred_age) DESC) rnk FROM (SELECT cust_id, age, PREDICTION(FOR age USING *) OVER () pred_age, PREDICTION_DETAILS(FOR age ABS USING *) OVER () pred_det FROM mining_data_apply_v)) WHERE rnk <= 5; CUST_ID AGE PRED_AGE AGE_DIFF PRED_DET ------- --- -------- -------- ------------------------------------------------------------------ 100910 80 40.67 39.33 <Details algorithm="Support Vector Machines"> <Attribute name="HOME_THEATER_PACKAGE" actualValue="1" weight=".059" rank="1"/> <Attribute name="Y_BOX_GAMES" actualValue="0" weight=".059" rank="2"/> <Attribute name="AFFINITY_CARD" actualValue="0" weight=".059" rank="3"/> <Attribute name="FLAT_PANEL_MONITOR" actualValue="1" weight=".059" rank="4"/> <Attribute name="YRS_RESIDENCE" actualValue="4" weight=".059" rank="5"/> </Details> 101285 79 42.18 36.82 <Details algorithm="Support Vector Machines"> <Attribute name="HOME_THEATER_PACKAGE" actualValue="1" weight=".059" rank="1"/> <Attribute name="HOUSEHOLD_SIZE" actualValue="2" weight=".059" rank="2"/> <Attribute name="CUST_MARITAL_STATUS" actualValue="Mabsent" weight=".059" rank="3"/> <Attribute name="Y_BOX_GAMES" actualValue="0" weight=".059" rank="4"/> <Attribute name="OCCUPATION" actualValue="Prof." weight=".059" rank="5"/> </Details> 100694 77 41.04 35.96 <Details algorithm="Support Vector Machines"> <Attribute name="HOME_THEATER_PACKAGE" actualValue="1" weight=".059" rank="1"/> <Attribute name="EDUCATION" actualValue="< Bach." weight=".059" rank="2"/> <Attribute name="Y_BOX_GAMES" actualValue="0" weight=".059" rank="3"/> <Attribute name="CUST_ID" actualValue="100694" weight=".059" rank="4"/> <Attribute name="COUNTRY_NAME" actualValue="United States of America" weight=".059" rank="5"/> </Details> 100308 81 45.33 35.67 <Details algorithm="Support Vector Machines"> <Attribute name="HOME_THEATER_PACKAGE" actualValue="1" weight=".059" rank="1"/> <Attribute name="Y_BOX_GAMES" actualValue="0" weight=".059" rank="2"/> <Attribute name="HOUSEHOLD_SIZE" actualValue="2" weight=".059" rank="3"/> <Attribute name="FLAT_PANEL_MONITOR" actualValue="1" weight=".059" rank="4"/> <Attribute name="CUST_GENDER" actualValue="F" weight=".059" rank="5"/> </Details> 101256 90 54.39 35.61 <Details algorithm="Support Vector Machines"> <Attribute name="YRS_RESIDENCE" actualValue="9" weight=".059" rank="1"/> <Attribute name="HOME_THEATER_PACKAGE" actualValue="1" weight=".059" rank="2"/> <Attribute name="EDUCATION" actualValue="< Bach." weight=".059" rank="3"/> <Attribute name="Y_BOX_GAMES" actualValue="0" weight=".059" rank="4"/> <Attribute name="COUNTRY_NAME" actualValue="United States of America" weight=".059" rank="5"/> </Details>