クラスタリング(k-means、階層的クラスタリング、DBSCAN)

クラスタリング(Clustering)は、教師なし学習の代表的な手法の一つで、データをラベルなしでグループに分けるアルゴリズムです。クラスタリングの目的は、「似たもの同士を同じグループ(クラスタ)にまとめる」ことです。以下に代表的な3つのクラスタリング手法(k-means、階層的クラスタリング、DBSCAN)について詳しく説明します。


1. k-meansクラスタリング

概要

k-meansは最も基本的なクラスタリング手法の一つで、事前に指定したクラスタ数 k に基づいてデータを分類します。

アルゴリズム手順

  1. データ内にランダムにk個の**クラスタ中心(セントロイド)**を初期化。

  2. 各データ点を、最も近いセントロイドに割り当てる。

  3. 各クラスタの中心を、割り当てられた点の平均に更新。

  4. セントロイドが収束するまで(変化がなくなるまで)2~3を繰り返す。

特徴

  • シンプルで計算効率が高い。

  • 距離尺度(通常はユークリッド距離)に基づく。

  • クラスタの形が球状である場合に有効。

  • クラスタ数kを事前に指定する必要がある。

注意点

  • 外れ値に弱い。

  • 初期値依存性がある(初期のセントロイドの選び方により結果が変わる)。


2. 階層的クラスタリング(Hierarchical Clustering)

概要

階層的クラスタリングは、クラスタを階層構造(ツリー構造)として表現する手法です。大きく分けて2つの方式があります:

  • 凝集型(Agglomerative): 各データ点を個別のクラスタとして開始し、徐々にクラスタを統合。

  • 分割型(Divisive): 全体を一つのクラスタとして開始し、徐々に分割。

アルゴリズム(凝集型の例)

  1. 各データ点を1つのクラスタとして扱う。

  2. すべてのクラスタ間の距離を計算し、最も近いクラスタ同士を統合

  3. クラスタ数が1または目的のクラスタ数になるまで繰り返す。

距離の定義(リンクage)

  • 単一リンク(最短距離)

  • 完全リンク(最大距離)

  • 平均リンク(平均距離)

  • ウォード法(クラスタ内分散の増加量に基づく)

特徴

  • クラスタ数を事前に指定する必要がない(ただし任意に切ることは可能)。

  • デンドログラム(樹形図)で可視化可能。

  • ノイズに弱い。


3. DBSCAN(Density-Based Spatial Clustering of Applications with Noise)

概要

DBSCANは密度に基づくクラスタリング手法で、クラスタを高密度な領域として捉え、ノイズや外れ値を自動的に識別する点が特徴です。

主なパラメータ

  • ε(イプシロン): データ点が「近い」とみなされる距離の閾値。

  • MinPts: 一つのクラスタを形成するのに必要な最小の点の数。

アルゴリズムの概要

  1. 各点に対して、ε以内にMinPts以上の点があるかを判定。

  2. 条件を満たす点は「コア点」とされ、その近傍点はクラスタに含める。

  3. 隣接するコア点を結合し、クラスタを拡張。

  4. 条件を満たさない孤立点は「ノイズ点」として分類。

特徴

  • クラスタ数を事前に指定する必要がない。

  • ノイズ点や異常値を識別可能。

  • 任意の形状のクラスタに対応可能。

  • 高次元空間では精度が落ちやすい。


まとめ比較表

手法 クラスタ数の指定 外れ値対応 クラスタ形状 可視化
k-means 必要 弱い 球状が前提 難しい(高次元)
階層クラスタ 不要(切る位置で決定) 弱い 任意 デンドログラムで可能
DBSCAN 不要 強い 任意(非球状可) 難しい

応用例

  • 顧客の購買パターンの分析(マーケティング)

  • 画像のセグメンテーション

  • 異常検知(特にDBSCAN)

  • 文書の分類(文書クラスタリング)


必要に応じて、距離尺度の選び方や次元削減(PCA、t-SNEなど)との併用も検討されます。クラスタリングは、探索的データ分析において非常に重要な役割を果たします。

生成日:2025/06/01