5.3 予測の詳細
予測の詳細は、スコアに関する情報を提供するXML文字列です。
すべてのタイプのスコアリング(クラスタリング、特徴抽出、分類、回帰および異常検出)に対して詳細を使用できます。詳細は、スコアリングが動的であるかモデル適用の結果であるかに関係なく使用できます。
詳細関数CLUSTER_DETAILS
、FEATURE_DETAILS
およびPREDICTION_DETAILS
では、スコアリングに使用された属性の実測値およびスコアの判断における属性の相対的な重要度が戻されます。これらの関数では、デフォルトで5つの最も重要な属性が重要度が高い順に戻されます。
5.3.1 クラスタの詳細
CLUSTER_DETAILS
関数の例について説明します。
顧客100955の最も可能性が高いクラスタ割当て(20%を超える割当ての確率)について次の例の問合せでは、可能性の高いクラスタごとに最も影響がある属性を5つ生成します。クラスタリング関数により、mining_data_apply_v
から選択したデータにem_sh_clus_sampleという期待値最大化モデルが適用されます。デフォルトで5つの属性が戻されるため、CLUSTER_DETAILS
で指定されている「5」は必須ではありません。em_sh_clus_sampleモデルは、oml4sql-clustering-expectation-maximization.sql
の例によって作成されます。
例5-6 クラスタの詳細
SELECT S.cluster_id, probability prob, CLUSTER_DETAILS(em_sh_clus_sample, S.cluster_id, 5 USING T.*) det FROM (SELECT v.*, CLUSTER_SET(em_sh_clus_sample, NULL, 0.2 USING *) pset FROM mining_data_apply_v v WHERE cust_id = 100955) T, TABLE(T.pset) S ORDER BY 2 DESC;
出力内容は次のようになります。
CLUSTER_ID PROB DET
---------- ----- ----------------------------------------------------------------------------
14 .6761 <Details algorithm="Expectation Maximization" cluster="14">
<Attribute name="AGE" actualValue="51" weight=".676" rank="1"/>
<Attribute name="HOME_THEATER_PACKAGE" actualValue="1" weight=".557" rank="2"/>
<Attribute name="FLAT_PANEL_MONITOR" actualValue="0" weight=".412" rank="3"/>
<Attribute name="Y_BOX_GAMES" actualValue="0" weight=".171" rank="4"/>
<Attribute name="BOOKKEEPING_APPLICATION"actualValue="1" weight="-.003"
rank="5"/>
</Details>
3 .3227 <Details algorithm="Expectation Maximization" cluster="3">
<Attribute name="YRS_RESIDENCE" actualValue="3" weight=".323" rank="1"/>
<Attribute name="BULK_PACK_DISKETTES" actualValue="1" weight=".265" rank="2"/>
<Attribute name="EDUCATION" actualValue="HS-grad" weight=".172" rank="3"/>
<Attribute name="AFFINITY_CARD" actualValue="0" weight=".125" rank="4"/>
<Attribute name="OCCUPATION" actualValue="Crafts" weight=".055" rank="5"/>
</Details>
5.3.2 特徴の詳細
FEATURE_DETAILS
関数の例について説明します。
次の例の問合せでは、顧客101501に関する最上位の主成分分析(PCA)投影に最も影響を与える3つの属性が戻されます。FEATURE_DETAILS
関数により、svd_sh_sample_build_num表から選択したデータにsvd_sh_sampleという特異値分解(SVD)モデルが適用されます。この表とモデルは、oml4sql-singular-value-decomposition.sql
の例によって作成されます。
例5-7 特徴の詳細
SELECT FEATURE_DETAILS(svd_sh_sample, 1, 3 USING *) proj1det FROM svd_sh_sample_build_num WHERE CUST_ID = 101501;
出力内容は次のようになります。
PROJ1DET
--------------------------------------------------------------------------------
<Details algorithm="Singular Value Decomposition" feature="1">
<Attribute name="HOME_THEATER_PACKAGE" actualValue="1" weight=".352" rank="1"/>
<Attribute name="Y_BOX_GAMES" actualValue="0" weight=".249" rank="2"/>
<Attribute name="AGE" actualValue="41" weight=".063" rank="3"/>
</Details>
5.3.3 予測の詳細
PREDICTION_DETAILS
関数の例について説明します。
次の例の問合せでは、顧客100010の年齢を予測する場合に最も重要な属性が戻されます。予測関数により、mining_data_apply_v
から選択したデータにGLMR_SH_Regr_sampleという一般化線形モデル回帰モデルが適用されます。GLMR_SH_Regr_sampleモデルは、oml4sql-regression-glm.sql
の例によって作成されます。
例5-8 回帰用の予測の詳細
SELECT cust_id, PREDICTION(GLMR_SH_Regr_sample USING *) pr, PREDICTION_DETAILS(GLMR_SH_Regr_sample USING *) pd FROM mining_data_apply_v WHERE CUST_ID = 100010;
出力内容は次のようになります。
CUST_ID PR PD
------- ----- -----------
100010 25.45 <Details algorithm="Generalized Linear Model">
<Attribute name="FLAT_PANEL_MONITOR" actualValue="1" weight=".025" rank="1"/>
<Attribute name="OCCUPATION" actualValue="Crafts" weight=".019" rank="2"/>
<Attribute name="AFFINITY_CARD" actualValue="0" weight=".01" rank="3"/>
<Attribute name="OS_DOC_SET_KANJI" actualValue="0" weight="0" rank="4"/>
<Attribute name="BOOKKEEPING_APPLICATION" actualValue="1" weight="-.004" rank="5"/>
</Details>
次の例の問合せでは、技術サポートで働いている、アフィニティ・カードを使用する可能性が高い(85%より高い確率)顧客が戻されます。予測関数により、mining_data_apply_v
から選択したデータにsvmc_sh_clas_sampleというサポート・ベクター・マシン(SVM)分類モデルが適用されます。問合せには、学歴が最も重要な予測子であることを示す予測の詳細が含まれています。svmc_sh_clas_sampleモデルは、oml4sql-classification-svm.sql
の例によって作成されます。
例5-9 分類用の予測の詳細
SELECT cust_id, PREDICTION_DETAILS(svmc_sh_clas_sample, 1 USING *) PD FROM mining_data_apply_v WHERE PREDICTION_PROBABILITY(svmc_sh_clas_sample, 1 USING *) > 0.85 AND occupation = 'TechSup' ORDER BY cust_id;
出力内容は次のようになります。
CUST_ID PD
------- ---------------------------------------------------------------------------------------
100029 <Details algorithm="Support Vector Machines" class="1">
<Attribute name="EDUCATION" actualValue="Assoc-A" weight=".199" rank="1"/>
<Attribute name="CUST_INCOME_LEVEL" actualValue="I: 170\,000 - 189\,999" weight=".044"
rank="2"/>
<Attribute name="HOME_THEATER_PACKAGE" actualValue="1" weight=".028" rank="3"/>
<Attribute name="BULK_PACK_DISKETTES" actualValue="1" weight=".024" rank="4"/>
<Attribute name="BOOKKEEPING_APPLICATION" actualValue="1" weight=".022" rank="5"/>
</Details>
100378 <Details algorithm="Support Vector Machines" class="1">
<Attribute name="EDUCATION" actualValue="Assoc-A" weight=".21" rank="1"/>
<Attribute name="CUST_INCOME_LEVEL" actualValue="B: 30\,000 - 49\,999" weight=".047"
rank="2"/>
<Attribute name="FLAT_PANEL_MONITOR" actualValue="0" weight=".043" rank="3"/>
<Attribute name="HOME_THEATER_PACKAGE" actualValue="1" weight=".03" rank="4"/>
<Attribute name="BOOKKEEPING_APPLICATION" actualValue="1" weight=".023" rank="5"/>
</Details>
100508 <Details algorithm="Support Vector Machines" class="1">
<Attribute name="EDUCATION" actualValue="Bach." weight=".19" rank="1"/>
<Attribute name="CUST_INCOME_LEVEL" actualValue="L: 300\,000 and above" weight=".046"
rank="2"/>
<Attribute name="HOME_THEATER_PACKAGE" actualValue="1" weight=".031" rank="3"/>
<Attribute name="BULK_PACK_DISKETTES" actualValue="1" weight=".026" rank="4"/>
<Attribute name="BOOKKEEPING_APPLICATION" actualValue="1" weight=".024" rank="5"/>
</Details>
100980 <Details algorithm="Support Vector Machines" class="1">
<Attribute name="EDUCATION" actualValue="Assoc-A" weight=".19" rank="1"/>
<Attribute name="FLAT_PANEL_MONITOR" actualValue="0" weight=".038" rank="2"/>
<Attribute name="HOME_THEATER_PACKAGE" actualValue="1" weight=".026" rank="3"/>
<Attribute name="BULK_PACK_DISKETTES" actualValue="1" weight=".022" rank="4"/>
<Attribute name="BOOKKEEPING_APPLICATION" actualValue="1" weight=".02" rank="5"/>
</Details>
次の例の問合せでは、他の顧客と最も異なる2人の顧客が戻されます。予測関数により、mining_data_apply_v
から選択したデータにSVMO_SH_Clas_sampleという異常検出モデルが適用されます。異常検出では、1クラスSVM分類機能が使用されます。このモデルは、oml4sql-singular-value-decomposition.sql
の例によって作成されます。
例5-10 異常検出用の予測の詳細
SELECT cust_id, pd FROM (SELECT cust_id, PREDICTION_DETAILS(SVMO_SH_Clas_sample, 0 USING *) pd, RANK() OVER (ORDER BY prediction_probability( SVMO_SH_Clas_sample, 0 USING *) DESC, cust_id) rnk FROM mining_data_one_class_v) WHERE rnk <= 2 ORDER BY rnk;
出力内容は次のようになります。
CUST_ID PD
---------- -----------------------------------------------------------------------------------
102366 <Details algorithm="Support Vector Machines" class="0">
<Attribute name="COUNTRY_NAME" actualValue="United Kingdom" weight=".078" rank="1"/>
<Attribute name="CUST_MARITAL_STATUS" actualValue="Divorc." weight=".027" rank="2"/>
<Attribute name="CUST_GENDER" actualValue="F" weight=".01" rank="3"/>
<Attribute name="HOUSEHOLD_SIZE" actualValue="9+" weight=".009" rank="4"/>
<Attribute name="AGE" actualValue="28" weight=".006" rank="5"/>
</Details>
101790 <Details algorithm="Support Vector Machines" class="0">
<Attribute name="COUNTRY_NAME" actualValue="Canada" weight=".068" rank="1"/>
<Attribute name="HOUSEHOLD_SIZE" actualValue="4-5" weight=".018" rank="2"/>
<Attribute name="EDUCATION" actualValue="7th-8th" weight=".015" rank="3"/>
<Attribute name="CUST_GENDER" actualValue="F" weight=".013" rank="4"/>
<Attribute name="AGE" actualValue="38" weight=".001" rank="5"/>
</Details>
5.3.4 GROUPINGヒント
OML4SQL関数には、PREDICTION*
、CLUSTER*
、FEATURE*
およびORA_DM_*
が含まれます。GROUPING
ヒントは、パーティション化されたモデルをスコアリングするときに、機械学習スコアリング関数に適用されるオプションのヒントです。
拡張されたPREDICTION関数コマンド・フォーマット
このヒントによって、入力データ・セットが個別のデータ・スライスにパーティション化されるため、次のパーティションに進む前に各パーティション全体がスコアリングされます。ただし、パーティションによるパラレル化も使用できます。データ・スライスは、モデルの構築時に使用されたパーティション化キー列によって決定されます。この方法は、パーティション化されたモデルに対する機械学習機能とともに使用できます。このヒントにより、多くのパーティションに関連付けられている大規模データをスコアリングするときは問合せパフォーマンスが向上する可能性がありますが、大規模システムでパーティションが少ない大規模データをスコアリングするときはパフォーマンスが低下する可能性があります。通常、ヒントを単一行問合せに使用する場合、パフォーマンスは向上しません。
<prediction function> ::=
PREDICTION <left paren> /*+ GROUPING */ <prediction model>
[ <comma> <class value> [ <comma> <top N> ] ]
USING <machine learning attribute list> <right paren>
PREDICTION
関数専用の構文が指定されますが、PREDICTION
、CLUSTERING
およびFEATURE_EXTRACTION
スコアリング関数が発生する機械学習機能に適用可能です。
例5-11 例
SELECT PREDICTION(/*+ GROUPING */my_model USING *) pred FROM <input table>;
関連トピック