ヘッダーをスキップ
Oracle Data Mining概要
11g リリース1(11.1)
E05704-02
  目次へ
目次
索引へ
索引

戻る
戻る
 
次へ
次へ
 

7 クラスタリング

この章では、データ内の自然なグループを検出するための監視なしマイニング機能であるクラスタリングについて説明します。

この章では、次の項目について説明します。

クラスタリングとは

クラスタリング分析では、相互になんらかの類似性を持つデータ・オブジェクトの集まり(クラスタ)を見つけます。つまり、あるクラスタのメンバーは、別のクラスタのメンバーよりも同じクラスタのメンバーに類似していることになります。クラスタリング分析の目的は、クラスタ間の類似度が低くなり、クラスタ内の類似度が高くなるような、質の高いクラスタを見つけることです。

クラスタリングは、分類と同じくデータを分割するために使用します。クラスタリング・モデルが分類と異なるのは、事前に定義されていないグループにデータを分割する点です。分類モデルの場合は、あらかじめ定義済のクラスをターゲットとして指定し、それらのクラスに割り当てることによってデータを分割します。クラスタリング・モデルではターゲットを使用しません。

クラスタリングはデータの調査に役立ちます。ケース数が多くグループが明らかでない場合、クラスタリング・アルゴリズムを使用すると、自然なグループを見つけることができます。クラスタリングは、監視ありモデルの作成対象となる同種グループを識別するためのデータの前処理手段としても有効です。

クラスタリングは、異常検出用としても使用できます。データがいくつかのクラスタに分割された後に、どのクラスタにも適合しないケースを検出することが可能です。これらのケースが異常値または外れ値です。

クラスタの解釈

クラスタリングでは既知のクラスを使用しないため、クラスタの解釈が難しい場合があります。ビジネスの意思決定に使用するにあたってクラスタが信頼できるものかどうか、どのようにして判断すればよいのでしょうか。

クラスタは、クラスタリング・アルゴリズムにより生成される情報を調べることによって分析できます。Oracle Data Miningでは、各クラスタについて次の情報が生成されます。

その他の種類のデータ・マイニングと同じように、クラスタリングのプロセスは反復的であったり、複数のモデルの作成が必要となったりする場合があります。無関係な属性を削除する、または新しい属性を追加することによって、クラスタリング・モデルにより生成されるセグメントの質が向上する場合もあります。

クラスタの計算方法

クラスタを計算する方法にはいくつかの種類があります。それぞれのクラスタリング・アルゴリズムを次のように特徴付けることができます。

  • 階層化: データ・オブジェクトを複数のクラスタから成る階層にグループ化します。階層は、トップダウン式またはボトムアップ式のどちらでも形成が可能です。階層化による方法では、距離関数を使用してクラスタ間の類似度を計測します。


    注意:

    Oracle Data Miningがサポートするクラスタリング・アルゴリズムは、階層クラスタリングを実行します。

  • パーティション化: データ・オブジェクトを特定の数のクラスタにグループ化します。クラスタは、距離などの客観的な基準を最適化するように形成されます。

  • 局所性ベース: 局所的な条件に基づいて隣接するデータ・オブジェクトをグループ化します。

  • グリッドベース: 入力空間を超矩形セルに分割し、低密度のセルを破棄してから、隣り合う高密度のセルを結合してクラスタを形成します。


参考:

『O-Cluster: Scalable Clustering of Large High Dimensional Data Sets』(Campos, M.M.、Milenova, B.L共著、Oracle Data Mining Technologies, 10 Van De Graaff Drive, Burlington, MA 01803)

http://www.oracle.com/technology/products/bi/odm/


クラスタ・ルール

Oracle Data Miningでは階層クラスタリングを実行します。リーフ・クラスタは、アルゴリズムによって生成される最終クラスタです。階層内で上位にあるクラスタは中間クラスタです。

クラスタ内のデータはルールによって説明されます。ルールとは、親クラスタを複数の子クラスタに分岐させるためのロジックを表した条件文です。ルールは、ある確率で特定のクラスタに割り当てられるケースについての条件を記述します。たとえば、次のルールはクラスタ19に割り当てられるケースに適用されます。

IF
 OCCUPATION in Cleric. AND OCCUPATION in Crafts
     AND OCCUPATION in Exec.
     AND OCCUPATION in Prof.
 CUST_GENDER in M
 COUNTRY_NAME in United States of America
 CUST_MARITAL_STATUS in Married
 AFFINITY_CARD in 1.0
 EDUCATION in < Bach.
     AND EDUCATION in Bach.
     AND EDUCATION in HS-grad
     AND EDUCATION in Masters
 CUST_INCOME_LEVEL in B: 30,000 - 49,999
     AND CUST_INCOME_LEVEL in E: 90,000 - 109,999
 AGE lessOrEqual 0.7
     AND AGE greaterOrEqual 0.2
THEN
Cluster equal 19.0

支持度と信頼度

支持度および信頼度は、クラスタリング・ルールとケースとの関係を説明するメトリックです。

支持度は、ルールに該当するケースの割合です。

信頼度は、ルールによって説明されるケースが実際にクラスタに割り当てられる確率です。

クラスタの数

クラスタリング・アルゴリズムによって生成されるクラスタの最大数は、CLUS_NUM_CLUSTERS構築設定で指定します。

属性ヒストグラム

Oracle Data Minerでは、クラスタ内の属性の値の分布をヒストグラムで表します。図7-1は、顧客データのクラスタにおける職業の分布を表したヒストグラムです。

このクラスタでは、顧客のうち専門技術職は約13%、管理職は約13%、農業従事者は約2%、などとなっています。軍隊に所属する顧客および住宅販売に従事する顧客は、このクラスタには含まれていません。

図7-1 Oracle Data Minerのヒストグラム

図7-1の説明は図の下のリンクをクリックしてください。
「図7-1 Oracle Data Minerのヒストグラム」の説明

クラスタの重心

重心は、クラスタ内の最も典型的なケースを表します。たとえば、顧客の年齢および収入のデータセットの場合、各クラスタの重心は、年齢と収入がそのクラスタの平均値である顧客となります。データセットに性別が含まれている場合、重心はクラスタ内で最も登場頻度が高い性別を持ちます。図7-1には、クラスタの重心の値が表示されています。

重心は一種の典型です。必ずしもクラスタに割り当てられた特定のケースを表すものではありません。重心の属性値は、量的属性の場合は平均値、質的属性の場合は最頻値となります。

新しいデータのスコアリング

Oracle Data Miningでは、クラスタリングのスコアリング操作をサポートしています。クラスタリング・モデルは、作成データからクラスタを生成するだけでなく、新しいデータのスコアリングに使用できるベイズ確率モデルを作成します。

クラスタリング問題の例

次の例では、Oracle Data Miningのサンプル・プログラムの1つによって作成されるクラスタリング・モデルkm_sh_clus_sampleを使用して、作成データ内の自然なグループを検出したり、新しいデータをスコアリングしたりするためにクラスタリングを利用する方法を紹介します。

図7-2は、モデルの作成に使用したケース表から抜粋した6つの列と10の行です。ターゲットとして指定されている列がないことに注意してください。

図7-2 クラスタリング用の作成データ

図7-2の説明は図の前後の段落を参照してください。

関連項目:

Oracle Data Miningのサンプル・プログラムの詳細は、『Oracle Data Mining管理者ガイド』を参照してください。

例: クラスタの特定

詳しい分析を実行する前に、顧客データを分割する場合について考えてみます。まず、クラスタリング・アルゴリズムによって生成された、データのメトリックを分析します。図7-3は、Oracle Data Minerに表示されたクラスタの詳細です。これらの詳細は、クラスタ3のyrs_residence属性に関するものです。現住所に2年間住んでいる顧客は20%、3年間住んでいる顧客は約25%、などの情報が表示されています。

図7-3 作成データのクラスタの情報

図7-3の説明は図の下のリンクをクリックしてください。
「図7-3 作成データのクラスタの情報」の説明

例: 新しいデータのスコアリング

市場調査に使用する目的で、ある地域の顧客データのデータベースを分割する必要があるとします。そこで、別の地域用に作成したクラスタリング・モデルを使用して試してみることにします。図7-4は、スコアリングした顧客データにおけるクラスタの割当ての一部です。顧客100,001がクラスタ15に含まれる確率は95.5%、顧客100,002がクラスタ6に含まれる確率は89%、などの情報が表示されています。

図7-4 スコアリング後の顧客データ

図7-4の説明は図の下のリンクをクリックしてください。
「図7-4 スコアリング後の顧客データ」の説明


注意:

Oracle Data Minerでは、適用出力表のDMR$CASE_ID列に一般化されたケースIDが表示されます。各ケースのクラスタの割当ては、CLUSTER_ID列に表示されます。当該クラスタに含まれる確率は、PROBABILITY列に表示されます。

クラスタのメンバーとなる条件は、ルールに記述されます。図7-5には、クラスタ15のルールが表示されています。

図7-5 クラスタ・ルール

図7-5の説明は図の前後の段落を参照してください。

クラスタリングのアルゴリズム

Oracle Data Miningでは、k-Meansの拡張バージョン、およびOracle独自のアルゴリズムである直行パーティショニング・クラスタリング(O-Cluster)という2種類のクラスタリング・アルゴリズムをサポートしています。どちらのアルゴリズムでも、階層クラスタリングを実行します。

表7-1に、拡張k-MeansアルゴリズムとO-Clusterアルゴリズムの比較をまとめています。

表7-1 クラスタリング・アルゴリズムの比較

特徴 拡張k-Means O-Cluster

クラスタリングの方法

距離ベース

グリッドベース

ケース数

任意のサイズのデータセットを処理可能

ケース数が500を超えるデータセットにより適しており、アクティブなサンプリングによって大きな表を処理する

属性数

属性数が少ないデータセットにより適している

属性数が多いデータセットにより適している

クラスタ数

ユーザーが指定する

自動的に決定される

階層クラスタリング

確率的なクラスタの割当て



関連項目:

Oracleによるk-Meansアルゴリズムの実装の詳細は、第13章「k-Means」を参照してください。

Oracle独自のアルゴリズムである直行パーティショニング・クラスタリングの詳細は、第17章「O-Cluster」を参照してください。