まとめ
- クラスタリングはラベルのないデータから構造やグループを発見する教師なし学習の代表的手法。
- 距離ベース、密度ベース、確率モデル、グラフベースなど多様なアプローチがあり、データ特性に合わせて使い分ける。
- クラスタ数の推定やノイズ処理など実務で直面する課題に応える派生手法も豊富。
クラスタリング #
直感 #
似たサンプル同士をまとめることで、大量データの俯瞰・セグメント設計・異常検知などに活用できます。教師あり学習の前処理として、特徴量の理解や仮説立案に役立つのも魅力です。
具体的な数式 #
手法によって数式の立て方は異なりますが、共通して「同一クラスタ内の類似度を高く、クラスタ間の類似度を低くする」ことを目的に最適化を行います。距離(ユークリッド、コサインなど)、密度(近傍点数)、確率(ガウス混合)といった指標を使い分けるのがポイントです。
Pythonを用いた実験や説明 #
各ページでは下記のようなテーマを実装しながら学びます。
- k-means / k-means++ / X-means: セントロイド更新とクラスタ数の自動選択
- DBSCAN / HDBSCAN: 密度ベースでノイズを扱いつつクラスタを抽出
- ガウス混合モデル (GMM): クラスタ所属確率を推定する生成モデル
- 階層型クラスタリング: デンドログラムによる構造の可視化
- スペクトラルクラスタリング: グラフラプラシアンと固有ベクトルを用いた分割
いずれも scikit-learn などのライブラリを用いた実装例と可視化を掲載しています。
参考文献 #
- Jain, A. K. (2010). Data Clustering: 50 Years Beyond K-means. Pattern Recognition Letters.
- Xu, R., & Wunsch, D. (2005). Survey of Clustering Algorithms. IEEE Transactions on Neural Networks.