📌

クラスタリングとは? ~各手法説明のための導入として~

に公開

この記事で学べること

みなさん、こんにちは。りゅう9です。この記事では、教師なし学習の代表、クラスタリングについて、様々な手法の詳細記事への導入として、クラスタリングとは何か?を説明します。

クラスタリングとは

クラスタリングとは、似たデータをいくつかのグループ (クラスター) に分ける手法です。こちらの記事[1]で紹介したように、クラスタリングは機械学習の中の教師なし学習の1つです。教師なし学習とは、正解ラベルの付いていないデータから、何かしらの特徴を見つけ出して識別する手法です。クラスタリングと混同されがちな分類ですが、こちらは教師あり学習の1つで、正解ラベルを付して学習させます。ラベルを付していないか、いるか (ラベリングをしていないか、しているか) が大きな違いと言えるでしょう。
改めて、クラスタリングの概念を下の図を使って説明します。左のようにプロットされるデータがあったとします。このデータをみるとどこか3つに分けられそうな気がしますよね?これを右のように3つのグループに分けることをクラスタリングと言います。このグループのことをクラスタと言い、下の図では「3つのクラスタにクラスタリングをした」ことになります。

クラスタリングの概念

クラスタリングの活用例

  • 工場における異常検知
    センサから得られるデータから、通常パターンと異常パターンをクラスタリングして不良品を選別。
  • 顧客セグメンテーション
    購買パターンや顧客の性別、年齢から顧客をクラスタリングし、クラスタごとに最適な営業活動を行う。
  • 医療における症例パターンの分析
    検査データや症状から似た患者群を発見し、治療法の最適化に活用。

クラスタリングはラベリングが必要ないため、傾向がわからないデータを分類したいときや、新しいパターンを見つけたいときに有効です。

クラスタリングの種類

代表的なクラスタリングの手法についてその名前と特徴を列挙します。詳細については個別の記事を作成する予定です。
クラスタリングは大きく分けると3つに分類できます。

  1. 階層型クラスタリング(Hierarchical Clustering)
    これはデータを階層構造でまとめていく方法です。データの類似度に応じて、クラスタを段階的に統合、分類していきます (統合していくものを凝集型、分割していくものを分割型ともいいます)。データを分類し、その構造をデンドログラムという樹形図で表します。群平均法ウォード法最短距離法最長距離法が例に挙げられます。
    クラスタ数を事前に決めなくても良いという特徴もあります。

  2. 非階層型クラスタリング(Partitional Clustering)
    こちらは階層型クラスタリングとは異なり、クラスタ数をあらかじめ指定してデータを分割する方法です (多くの場合では)。k-means法k-medoids法が例に挙げられます。
    計算が速く、大規模なデータにも適用できるといった特徴があります。

  3. 密度ベースクラスタリング(Density-based Clustering)
    データの密度 (周囲の点の多さ) を使ってクラスタを形成する方法です。DBSCANOPTICSが例に挙げられます。
    クラスタ数を事前に決める必要がなく、ノイズや外れ値にもうまく対応できるといった特徴があります。

k-means法とk-medoids法の記事はこちら (2025/8/17追記)

https://zenn.dev/ryu9/articles/clustering-kmeans
https://zenn.dev/ryu9/articles/clustering-kmedoids

まとめ

クラスタリングの導入はここまでとします。一口にクラスタリングと言っても様々な手法があることがわかりました。それぞれの手法の詳細やクラスタ数の決め方 (エルボー法など)、クラスタリングの評価指標を個別の記事として投稿していこうと思います。
この記事に誤りがありましたらご指摘ください。

脚注
  1. AI・機械学習・ニューラルネットワーク・ディープラーニングとは? ↩︎

GitHubで編集を提案

Discussion