階層クラスター分析:段階的グループ化の可視化
階層クラスター分析(Hierarchical Cluster Analysis)は、データを段階的にグループ化し、その過程を樹状図(デンドログラム)で可視化する教師なし学習手法です。
階層クラスター分析の特徴
Step 1: デンドログラム(樹状図)
- 視覚的表現:クラスター形成過程を樹状図で表示
- 柔軟な分割:任意のレベルでクラスター数を決定可能
- 距離情報:クラスター間の距離が縦軸で表現
- 階層構造:入れ子状のクラスター構造を表現
Step 2: 凝集型アルゴリズム
一般的な階層クラスター分析の手順:
- 初期化:各観測値を個別のクラスターとして開始
- 距離計算:すべてのクラスター間の距離を計算
- 結合:最も近い2つのクラスターを結合
- 更新:新しいクラスターとの距離を再計算
- 反復:すべてが1つのクラスターになるまで繰り返し
Step 3: 距離の測定方法
観測値間の距離
- ユークリッド距離:$d = \sqrt{\sum_{i=1}^p (x_i - y_i)^2}$
- マンハッタン距離:$d = \sum_{i=1}^p |x_i - y_i|$
- マハラノビス距離:共分散を考慮した距離
- コサイン距離:角度に基づく類似度
Step 4: クラスター間距離(結合方法)
| 結合方法 | 定義 | 特徴 |
|---|
| 最短距離法 | 最も近い点同士の距離 | 鎖効果が起きやすい |
| 最長距離法 | 最も遠い点同士の距離 | コンパクトなクラスター |
| 群平均法 | 全点間距離の平均 | バランスの取れた結果 |
| Ward法 | 分散の増加を最小化 | 等サイズクラスター傾向 |
| 重心法 | 重心間の距離 | 逆転現象の可能性 |
Step 5: Ward法の詳細
Ward法は、クラスター内分散の増加を最小化:
$\Delta(C_i, C_j) = \frac{n_i n_j}{n_i + n_j} \|\bar{\mathbf{x}}_i - \bar{\mathbf{x}}_j\|^2$
ここで、$n_i, n_j$はクラスターサイズ、$\bar{\mathbf{x}}_i, \bar{\mathbf{x}}_j$は重心
Step 6: 非階層クラスター分析との比較
| 項目 | 階層クラスター分析 | 非階層(k-means等) |
|---|
| クラスター数 | 事後決定 | 事前指定 |
| 計算量 | $O(n^3)$ | $O(nkt)$ |
| 可視化 | デンドログラム | 散布図 |
| 結果の安定性 | 決定論的 | 初期値依存 |
| 大規模データ | 不向き | 適用可能 |
注意点と限界
- 外れ値への敏感性:極端な値がクラスター構造に大きく影響
- 結合の不可逆性:一度結合したクラスターは分離不可
- 計算コスト:大規模データには不向き
- 形状の制約:球状でないクラスターの検出が困難