クラスタリング(Clustering)は、データセットの中に存在する未知のグループ構造を見つけ出すための「教師なし学習(Unsupervised Learning)」の代表的な手法です。目的変数(正解ラベル)が存在しない状況において、データ間の類似度(または非類似度)を定量化し、互いに似ているデータを同じグループ(クラスター)に分類します。
クラスタリング手法は、アルゴリズムのプロセスによって大きく「階層型クラスタリング(Hierarchical Clustering)」と「非階層型クラスタリング(Non-hierarchical Clustering)」の2つに大別されます。本項では、それぞれの数理的背景、アルゴリズムの特性、およびクラスター数の決定方法について解説します。
1. データ間の類似度と距離の定義
クラスタリングを行う前提として、データポイント間の「距離(非類似度)」を数学的に定義する必要があります。距離が近いほど類似度が高く、距離が遠いほど類似度が低いと判断されます。データ $\mathbf{x} = (x_1, x_2, \dots, x_p)$ と $\mathbf{y} = (y_1, y_2, \dots, y_p)$ 間の代表的な距離指標は以下の通りです。
- ユークリッド距離(Euclidean Distance):最も標準的な直線距離です。
$$ d(\mathbf{x}, \mathbf{y}) = \sqrt{\sum_{i=1}^p (x_i – y_i)^2} $$ - マンハッタン距離(Manhattan Distance):各次元の差の絶対値の和です。外れ値の影響を相対的に受けにくい特性があります。
$$ d(\mathbf{x}, \mathbf{y}) = \sum_{i=1}^p |x_i – y_i| $$
距離を計算する際、変数のスケール(単位)が異なると、分散の大きい変数が距離計算を支配してしまいます。そのため、クラスタリングの事前処理として、標準化(平均0、分散1への変換)を行うことが不可欠です。
2. 階層型クラスタリング
階層型クラスタリングは、データが階層的な構造を持ってグループ化されていく過程を可視化できる手法です。主に、個々のデータポイントが1つのクラスターである状態から出発し、最も距離が近いクラスター同士を順番に結合していく「凝集型(Agglomerative)」のアプローチがとられます。
クラスター間の距離の測り方(結合法)
2つのクラスター $C_A$ と $C_B$ を結合する際、「クラスター間の距離」をどのように定義するかで結果が大きく変化します。
- 最短距離法(Single Linkage):2つのクラスターに属するデータ間の最小距離を採用します。鎖状にクラスターが伸びる現象(Chain effect)が起きやすい傾向があります。
- 最長距離法(Complete Linkage):2つのクラスターに属するデータ間の最大距離を採用します。比較的球状のクラスターを形成しやすいです。
- 群平均法(Average Linkage):2つのクラスターに属するすべてのデータペアの距離の平均値を採用します。
- ウォード法(Ward’s Method):実務において最も推奨される手法です。クラスターを結合した際の「クラスター内誤差平方和(ESS: Error Sum of Squares)」の増加量が最小となるペアを結合します。
結合前のクラスター内誤差平方和の和と、結合後の誤差平方和の差 $\Delta E$ を最小化します。これにより、分散が小さく、同程度のサイズのクラスターが形成されやすくなります。
デンドログラム(樹形図)
階層型クラスタリングの結果は、デンドログラムと呼ばれる樹形図で表現されます。縦軸(または横軸)はクラスター間が結合された際の距離を示します。分析者は、このデンドログラムの任意の高さで直線を引く(木を切り取る)ことで、最終的なクラスター数を決定します。
3. 非階層型クラスタリング(K-means法)
非階層型クラスタリングは、階層構造を作らず、事前に指定したクラスター数 $K$ にデータを直接分割する手法です。代表的なアルゴリズムが K-means(K平均法)です。
最適化の目的関数
K-means法は、各データポイント $\mathbf{x}_i$ と、それが割り当てられたクラスターの重心(平均ベクトル) $\boldsymbol{\mu}_k$ とのユークリッド距離の平方和を最小化することを目的とします。これを最適化問題として定式化すると以下のようになります。
$$ \arg\min_{\mathbf{S}} \sum_{k=1}^K \sum_{\mathbf{x}_i \in S_k} \|\mathbf{x}_i – \boldsymbol{\mu}_k\|^2 $$
(ここで $S_k$ はクラスター $k$ に属するデータの集合)
アルゴリズムの実行手順
- 初期化:データ空間内にランダムに $K$ 個の点(初期の重心)を配置します。
- 割り当て(Expectationステップ):各データポイントを、最も距離が近い重心のクラスターに割り当てます。
- 更新(Maximizationステップ):各クラスターに割り当てられたデータポイントの平均値を計算し、それを新しい重心とします。
- 収束判定:データポイントの割り当てが変化しなくなる、あるいは重心の移動量が閾値以下になるまで、2と3のステップを反復します。
K-means法は計算コストが低く大規模データに適していますが、「初期値の依存性(局所解への収束)」という問題があります。これを回避するため、初期値を工夫して配置する「K-means++」アルゴリズムが現在では広く用いられています。
4. クラスター数の決定方法
非階層型(K-means)では、事前のクラスター数 $K$ の設定が必須です。また、階層型でも最終的にいくつに分割するかを決定する必要があります。統計的根拠に基づく代表的な決定手法を挙げます。
エルボー法(Elbow Method)
K-meansにおいて、$K$ の値を1から順に増やしながら、各 $K$ におけるクラスター内誤差平方和(SSE)をプロットします。$K$ が増えるとSSEは必ず減少しますが、あるポイントで減少率が急激に緩やかになります。グラフが「腕の肘(エルボー)」のように折れ曲がる点の $K$ を、最適なクラスター数として採用します。
シルエット係数(Silhouette Coefficient)
各データポイントが、自身の属するクラスター内にどれほど密にまとまっており、同時に隣接する他のクラスターからどれほど遠く離れているかを評価する指標です。値は -1 から 1 の範囲をとり、1に近いほど分類が適切であることを示します。クラスターごとのシルエット係数の平均を比較し、最も高くなる $K$ を採用します。
5. 階層型と非階層型の比較
両手法には明確なトレードオフが存在します。データの規模や分析の目的に応じて使い分けることが重要です。
| 比較項目 | 階層型クラスタリング | 非階層型(K-means法) |
|---|---|---|
| 事前のクラスター数設定 | 不要(デンドログラムを見て事後的に決定) | 必須(事前に $K$ を与える必要がある) |
| 計算コストとデータ規模 | 計算量が $O(N^3)$ 程度になることが多く、数万件以上の大規模データには不向き。 | 計算量が $O(N)$ に近いため、数十万件以上の大規模データにも適用可能。 |
| 結果の解釈性 | デンドログラムにより、結合の過程や類似度の構造を視覚的に追跡可能。 | 最終的な分割結果のみが出力され、階層的な関係性は不明。 |
| 結果の安定性 | 決定論的であり、同じデータ・結合法なら常に同じ結果になる。 | 初期値に依存するため、実行ごとに結果が異なる場合がある(複数回試行が必須)。 |
6. 実務におけるクラスタリングの適用事例
クラスタリングは、探索的データ分析(EDA)の初期段階や、マーケティング・生物学など多岐にわたる領域で活用されています。
事例1:顧客セグメンテーション(K-means法の活用)
小売業において、顧客の購買履歴データから「最終購入日(Recency)」「購入頻度(Frequency)」「購入金額(Monetary)」を抽出し(RFM分析)、標準化した上でK-means法を適用します。「高頻度・低単価グループ」「離反間近の優良顧客グループ」などのクラスターを客観的に導出し、各セグメントに対して最適なプロモーション施策を打ち出す意思決定に利用されます。データ件数が膨大になるため、非階層型が適しています。
事例2:遺伝子発現プロファイリング(階層型クラスタリングの活用)
バイオインフォマティクスの分野において、数千の遺伝子が異なる条件下でどのように発現するかを測定したマイクロアレイデータを分析します。遺伝子間の類似度に基づいて階層型クラスタリング(ウォード法など)を適用し、デンドログラムとヒートマップを併置することで、「機能的に関連している可能性が高い遺伝子群(モジュール)」の階層構造を視覚的に特定します。サンプル数が限定的であり、かつ構造の解釈が重視されるため、階層型が適しています。
まとめ
クラスタリングは、データに潜む構造をデータ駆動で発見するための基礎的手法です。階層型の手法は構造の視覚的理解において優れ、非階層型のK-meansは大規模データの処理において優れています。実務においては、まずサンプルデータに対して階層型を適用してデンドログラムから適切なクラスター数の見当をつけ、その後、全体データに対してそのクラスター数でK-means法を適用するといった、両者の長所を組み合わせたアプローチも有効です。
