クラスタリング(Clustering)は、教師なし学習の代表的な手法の一つで、データをラベルなしでグループに分けるアルゴリズムです。クラスタリングの目的は、「似たもの同士を同じグループ(クラスタ)にまとめる」ことです。以下に代表的な3つのクラスタリング手法(k-means、階層的クラスタリング、DBSCAN)について詳しく説明します。
1. k-meansクラスタリング
概要
k-meansは最も基本的なクラスタリング手法の一つで、事前に指定したクラスタ数 k に基づいてデータを分類します。
アルゴリズム手順
-
データ内にランダムにk個の**クラスタ中心(セントロイド)**を初期化。
-
各データ点を、最も近いセントロイドに割り当てる。
-
各クラスタの中心を、割り当てられた点の平均に更新。
-
セントロイドが収束するまで(変化がなくなるまで)2~3を繰り返す。
特徴
-
シンプルで計算効率が高い。
-
距離尺度(通常はユークリッド距離)に基づく。
-
クラスタの形が球状である場合に有効。
-
クラスタ数kを事前に指定する必要がある。
注意点
-
外れ値に弱い。
-
初期値依存性がある(初期のセントロイドの選び方により結果が変わる)。
2. 階層的クラスタリング(Hierarchical Clustering)
概要
階層的クラスタリングは、クラスタを階層構造(ツリー構造)として表現する手法です。大きく分けて2つの方式があります:
-
凝集型(Agglomerative): 各データ点を個別のクラスタとして開始し、徐々にクラスタを統合。
-
分割型(Divisive): 全体を一つのクラスタとして開始し、徐々に分割。
アルゴリズム(凝集型の例)
-
各データ点を1つのクラスタとして扱う。
-
すべてのクラスタ間の距離を計算し、最も近いクラスタ同士を統合。
-
クラスタ数が1または目的のクラスタ数になるまで繰り返す。
距離の定義(リンクage)
-
単一リンク(最短距離)
-
完全リンク(最大距離)
-
平均リンク(平均距離)
-
ウォード法(クラスタ内分散の増加量に基づく)
特徴
-
クラスタ数を事前に指定する必要がない(ただし任意に切ることは可能)。
-
デンドログラム(樹形図)で可視化可能。
-
ノイズに弱い。
3. DBSCAN(Density-Based Spatial Clustering of Applications with Noise)
概要
DBSCANは密度に基づくクラスタリング手法で、クラスタを高密度な領域として捉え、ノイズや外れ値を自動的に識別する点が特徴です。
主なパラメータ
-
ε(イプシロン): データ点が「近い」とみなされる距離の閾値。 -
MinPts: 一つのクラスタを形成するのに必要な最小の点の数。
アルゴリズムの概要
-
各点に対して、
ε以内にMinPts以上の点があるかを判定。 -
条件を満たす点は「コア点」とされ、その近傍点はクラスタに含める。
-
隣接するコア点を結合し、クラスタを拡張。
-
条件を満たさない孤立点は「ノイズ点」として分類。
特徴
-
クラスタ数を事前に指定する必要がない。
-
ノイズ点や異常値を識別可能。
-
任意の形状のクラスタに対応可能。
-
高次元空間では精度が落ちやすい。
まとめ比較表
| 手法 | クラスタ数の指定 | 外れ値対応 | クラスタ形状 | 可視化 |
|---|---|---|---|---|
| k-means | 必要 | 弱い | 球状が前提 | 難しい(高次元) |
| 階層クラスタ | 不要(切る位置で決定) | 弱い | 任意 | デンドログラムで可能 |
| DBSCAN | 不要 | 強い | 任意(非球状可) | 難しい |
応用例
-
顧客の購買パターンの分析(マーケティング)
-
画像のセグメンテーション
-
異常検知(特にDBSCAN)
-
文書の分類(文書クラスタリング)
必要に応じて、距離尺度の選び方や次元削減(PCA、t-SNEなど)との併用も検討されます。クラスタリングは、探索的データ分析において非常に重要な役割を果たします。
生成日:2025/06/01