44.1 CLUSTER_DETAILS
構文
cluster_details::=
分析構文
cluster_details_analytic::=
mining_attribute_clause::=
mining_analytic_clause::=
関連項目:
mining_analytic_clause
の構文、セマンティクスおよび制限事項の詳細は、「分析ファンクション」を参照してください。
目的
CLUSTER_DETAILS
は、選択内に含まれる各行のクラスタ詳細を返します。戻り値は、最も高確率のクラスタまたは指定されたcluster_id
の属性について記述したXML文字列です。
topN
topN
に値を指定すると、このファンクションはクラスタ割当てに最も影響力のあるN
個の属性(スコア)を返します。topN
を指定しないと、このファンクションは最も影響力のある5つの属性を返します。
DESC、ASC、またはABS
返される属性が重みで順序付けされます。属性の重みは、その属性がクラスタ割当てに与える正の影響または負の影響を表します。正の重みは、割当ての可能性が増加することを示します。負の重みは、割当ての可能性が減少することを示します。
デフォルトでは、CLUSTER_DETAILS
は、最大の正の重みを持つ属性を返します(DESC
)。ASC
を指定すると、最大の負の重みを持つ属性が返されます。ABS
を指定すると、正負を問わずに、最大の重みを持つ属性が返されます。結果は、絶対値が高いほうから低いほうに順序付けされています。重みがゼロの属性は、出力に含まれません。
構文の選択
CLUSTER_DETAILS
は、2つの方法のどちらかでデータにスコアを付けます。1つ目の方法では、データにマイニング・モデル・オブジェクトを適用します。もう1つの方法では、1つ以上の一時マイニング・モデルを作成してから適用する分析句を実行して、動的にデータをマイニングします。構文または分析構文を選択します。
-
構文 — 事前に定義されたモデルでデータにスコアを付ける場合は、最初の構文を使用します。クラスタリング・モデルの名前を指定します。
-
分析構文 — 事前定義されたモデルなしで、データにスコアを付ける場合は、分析構文を使用します。
INTO
n
(n
は、計算するクラスタの数)と、mining_analytic_clause
(複数のモデル構築のためにデータをパーティション化する必要がある場合に指定します)を含めます。mining_analytic_clause
は、query_partition_clause
とorder_by_clause
をサポートします。(analytic_clause::=を参照。)
CLUSTER_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ユーザーズ・ガイド』の付録Aを参照してください。
例
この例では、顧客ID 100955のクラスタ割当てに対して、最大の影響が(20%以上の確率で)ある属性が一覧表示されます。この問合せは、CLUSTER_DETAILS
ファンクションとCLUSTER_SET
ファンクションを起動します。これにより、クラスタリング・モデルem_sh_clus_sample
を適用します。
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>
分析の例
この例では、共通の特徴に基づいて、顧客のデータベースを4つのセグメントに分割します。このクラスタリングのファンクションは、事前に定義されたクラスタリング・モデルなしでクラスタを計算してスコアを返します。
SELECT * FROM ( SELECT cust_id, CLUSTER_ID(INTO 4 USING *) OVER () cls, CLUSTER_DETAILS(INTO 4 USING *) OVER () cls_details FROM mining_data_apply_v) WHERE cust_id <= 100003 ORDER BY 1; CUST_ID CLS CLS_DETAILS ------- --- ----------------------------------------------------------------------------------- 100001 5 <Details algorithm="K-Means Clustering" cluster="5"> <Attribute name="FLAT_PANEL_MONITOR" actualValue="0" weight=".349" rank="1"/> <Attribute name="BULK_PACK_DISKETTES" actualValue="0" weight=".33" rank="2"/> <Attribute name="CUST_INCOME_LEVEL" actualValue="G: 130\,000 - 149\,999" weight=".291" rank="3"/> <Attribute name="HOME_THEATER_PACKAGE" actualValue="1" weight=".268" rank="4"/> <Attribute name="Y_BOX_GAMES" actualValue="0" weight=".179" rank="5"/> </Details> 100002 6 <Details algorithm="K-Means Clustering" cluster="6"> <Attribute name="CUST_GENDER" actualValue="F" weight=".945" rank="1"/> <Attribute name="CUST_MARITAL_STATUS" actualValue="NeverM" weight=".856" rank="2"/> <Attribute name="HOUSEHOLD_SIZE" actualValue="2" weight=".468" rank="3"/> <Attribute name="AFFINITY_CARD" actualValue="0" weight=".012" rank="4"/> <Attribute name="CUST_INCOME_LEVEL" actualValue="L: 300\,000 and above" weight=".009" rank="5"/> </Details> 100003 7 <Details algorithm="K-Means Clustering" cluster="7"> <Attribute name="CUST_MARITAL_STATUS" actualValue="NeverM" weight=".862" rank="1"/> <Attribute name="HOUSEHOLD_SIZE" actualValue="2" weight=".423" rank="2"/> <Attribute name="HOME_THEATER_PACKAGE" actualValue="0" weight=".113" rank="3"/> <Attribute name="AFFINITY_CARD" actualValue="0" weight=".007" rank="4"/> <Attribute name="CUST_ID" actualValue="100003" weight=".006" rank="5"/> </Details>