クラスタリングについて
クラスタリング分析では、相互に類似性を持つデータ・オブジェクトの集まり(クラスタ)を見つけます。
つまり、あるクラスタのメンバーは、別のクラスタのメンバーよりも同じクラスタのメンバーに類似していることになります。異なるクラスタには、共通のメンバーを含めることができます。クラスタリング分析の目的は、クラスタ間の類似度が低くなり、クラスタ内の類似度が高くなるような、質の高いクラスタを見つけることです。
クラスタリングは、分類と同じくデータを分割するために使用します。クラスタリング・モデルが分類と異なるのは、事前に定義されていないグループにデータを分割する点です。分類モデルの場合は、あらかじめ定義済のクラスをターゲットとして指定し、それらのクラスに割り当てることによってデータを分割します。クラスタリング・モデルではターゲットを使用しません。
クラスタリングはデータの調査に役立ちます。多数のケースがあり、明確なグループがない場合に、クラスタリング・アルゴリズムを使用して自然なグループを検出できます。
クラスタリングは、教師ありモデルを作成できる同種グループを識別するためのデータの前処理手段として有効です。
異常検出用にクラスタリングを使用することもできます。データをいくつかのクラスタに分割すると、どのクラスタにも適合しないケースがあることを検出します。これらのケースが異常値または外れ値です。
クラスタの計算方法
クラスタを計算する方法にはいくつかの種類があります。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では、次のクラスタリング・アルゴリズムがサポートされています。
-
期待値最大化
期待値最大化は、確率的な密度推定クラスタリング・アルゴリズムです。
-
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-5 クラスタリング・アルゴリズムの比較
特徴 | k-Means | O-Cluster | 期待値最大化 |
---|---|---|---|
クラスタリングの方法 |
距離ベース |
グリッドベース |
分布ベース |
ケース数 |
任意のサイズのデータセットを処理可能 |
ケース数が500を超えるデータセットにより適している。アクティブなサンプリングによって大きい表を処理する |
任意のサイズのデータセットを処理可能 |
属性数 |
属性数が少ないデータセットにより適している |
属性数が多いデータセットにより適している |
属性数が多いまたは少ないデータセットに適している |
クラスタ数 |
ユーザーが指定する |
自動的に決定される |
自動的に決定される |
階層クラスタリング |
はい |
はい |
はい |
確率的なクラスタの割当て |
はい |
はい |
はい |
ノート:
OML4SQLでは、デフォルトのクラスタリング・アルゴリズムとしてk-Meansを使用します。