クラスタリングについて
類似するデータ・オブジェクトのクラスタを特定します。事前定義されたカテゴリのないデータの調査および前処理に役立ちます。
つまり、あるクラスタのメンバーは、別のクラスタのメンバーよりも同じクラスタのメンバーに類似していることになります。異なるクラスタには、共通のメンバーを含めることができます。クラスタリング分析の目的は、クラスタ間の類似度が低くなり、クラスタ内の類似度が高くなるような、質の高いクラスタを見つけることです。
クラスタリングは、分類と同じくデータを分割するために使用します。クラスタリング・モデルが分類と異なるのは、事前に定義されていないグループにデータを分割する点です。分類モデルの場合は、あらかじめ定義済のクラスをターゲットとして指定し、それらのクラスに割り当てることによってデータを分割します。クラスタリング・モデルではターゲットを使用しません。
クラスタリングはデータの調査に役立ちます。多数のケースがあり、明確なグループがない場合に、クラスタリング・アルゴリズムを使用して自然なグループを検出できます。
クラスタリングは、教師ありモデルを作成できる同種グループを識別するためのデータの前処理手段として有効です。
異常検出用にクラスタリングを使用することもできます。データをいくつかのクラスタに分割すると、どのクラスタにも適合しないケースがあることを検出します。これらのケースが異常値または外れ値です。
クラスタの計算方法
密度ベース、距離ベースまたはグリッドベースの方法によってクラスタを計算して、高密度領域を特定し、類似度を計測し、クラスタを形成します。
クラスタを計算する方法にはいくつかの種類があります。Oracle Machine Learningでは、ここにリストされている方法がサポートされています。
-
密度ベース: このタイプのクラスタリングでは、基礎となるデータ分布を検出し、データの高密度領域が分布のピークにどのように対応しているかを評価します。高密度領域は、クラスタとして解釈されます。密度ベースのクラスタ評価は、確率的です。
-
距離ベース: このタイプのクラスタリングでは、距離メトリックを使用してデータ・オブジェクト間の類似度を判別します。距離メトリックでは、クラスタの実際のケースとクラスタの典型的なケースとの間の距離を測定します。典型的なケースは、重心と呼ばれます。
-
グリッドベース: このタイプのクラスタリングでは、入力空間を超矩形セルに分割し、隣り合う高密度セルを識別してクラスタを形成します。
新しいデータのスコアリング
新しいデータを確率的にスコアリングして新しいケースに対するクラスタ割当てを予測します。
クラスタリングは教師なしの機械学習手法ですが、Oracle Machine Learningではクラスタリングのスコアリング操作がサポートされています。新しいデータは、確率的にスコアリングされます。
階層クラスタリング
階層クラスタリングを実行して階層内の最終リーフ・クラスタおよび中間クラスタを生成します。
Oracle Machine Learningでは、階層クラスタリングを実行するクラスタリング・アルゴリズムがサポートされています。リーフ・クラスタは、アルゴリズムによって生成される最終クラスタです。階層内で上位にあるクラスタは中間クラスタです。
ルール
クラスタ割当てのロジックを取得する条件文を使用して、クラスタ内のデータを説明します。
各クラスタ内のデータはルールによって説明されます。ルールとは、親クラスタを複数の子クラスタに分岐させるためのロジックを表した条件文です。ルールは、ある確率で特定のクラスタに割り当てられるケースについての条件を記述します。
クラスタリング・モデルの評価
生成された情報(重心や階層ルールなど)を調べることでクラスタリング・モデルを評価して、ビジネス上の意思決定の信頼性を確保します。
クラスタリングでは既知のクラスを使用しないため、クラスタの解釈が難しい場合があります。ビジネスの意思決定に使用するにあたってクラスタが信頼できるものかどうか、どのようにして判断すればよいのでしょうか。Oracle Machine Learningのクラスタリング・モデルでは、高度なモデル透明性が確保されています。クラスタリング・アルゴリズムによって生成される情報を調べることでモデルを評価できます(距離ベースのクラスタの重心など)。さらに、クラスタリング・プロセスは階層的であるため、階層内での各クラスタの位置に関連するルールなどの情報を評価できます。
クラスタリングのアルゴリズム
Oracle Machine Learning for SQLで使用される様々なクラスタリング・アルゴリズムを学習します。
Oracle Machine Learning for SQLでは、次のクラスタリング・アルゴリズムがサポートされています。
-
期待値の最大化
期待値最大化は、確率的な密度推定クラスタリング・アルゴリズムです。
-
k-Means
k-Meansは、距離ベースのクラスタリング・アルゴリズムです。Oracle Machine Learning for SQLでは、拡張バージョンのk-Meansがサポートされています。
-
直交パーティショニング・クラスタリング(O-Cluster)
O-Clusterは、独自のグリッドベースのクラスタリング・アルゴリズムです。
参照:
『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)
次の表に、2つのアルゴリズムの主な特徴の比較を示します。
表7-6 クラスタリング・アルゴリズムの比較
機能 | k-Means | O-Cluster | 期待値の最大化 |
---|---|---|---|
クラスタリングの方法 |
距離ベース |
グリッドベース |
分布ベース |
ケース数 |
任意のサイズのデータセットを処理可能 |
ケース数が500を超えるデータセットにより適している。アクティブなサンプリングによって大きい表を処理する |
任意のサイズのデータセットを処理可能 |
属性数 |
属性数が少ないデータセットにより適している |
属性数が多いデータセットにより適している |
属性数が多いまたは少ないデータセットに適している |
クラスタ数 |
ユーザーが指定する |
自動的に決定される |
自動的に決定される |
階層クラスタリング |
可 |
可 |
可 |
確率的なクラスタの割当て |
可 |
可 |
可 |
ノート:
OML4SQLでは、デフォルトのクラスタリング・アルゴリズムとしてk-Meansを使用します。