クラスタリング(またはクラスター分析)は、集合に含まれるオブジェクトの類似度に基づき、それぞれのオブジェクトをグループ分けする手法です。
クラスタリングは、例えば、機械学習、パターン認識、画像分析、情報検索、バイオインフォマティクス、 など、ラベルを持たないオブジェクトをグループ化したい場面で利用します。
- クラスタリングとは何か?
- どんな場面でクラスタリングを利用するか?
- どんなクラスタリング手法があるか?
- どのようにオブジェクト同士の類似度を測るか?
目次
クラスタリングの概要
クラスタリングに関して抑えておきたいポイントを手短にまとめます。
- クラスタリングは、「教師なし学習(Unsupervised Learning)」 の一種
- クラスタリングは、オブジェクト同士の類似度を評価し、オブジェクトをいくつかのグループに分ける手法
- 同じクラスターに含まれるオブジェクト同士の類似度は高い
- 異なるクラスターに含まれるオブジェクト同士の類似度は低い
クラスタリングを扱う場面
実社会のどのような場面でクラスタリングは利用されていますか?
マーケティング、金融、科学、システム、ネットワーク、など、様々な分野でクラスタリングは利用されています。以下にクラスタリングの利用例をまとめます。
- カスタマー・セグメンテーション
- レコメンダー・システム
- 信号の異常検知
- ゲノム解析
- etc…
例えば、消費者の購買データをクラスタリングすれば、似た購買傾向を示す消費者をいくつかのグループにまとめることができ、マーケティング戦略に役立ちます。
多量の情報をグループ化してまとめることは、「情報の要約」とみなすこともできます。
通常のパターンとは異なるオブジェクトを見つけ出し、新たな発見に役立てることもできます。
クラスタリングのモデル
クラスタリングって、いくつか方法があるんでしょう?
クラスタリングのモデルは、大きく以下3種類に分類できます。
- 分割クラスタリング (Partitional Clustering)
- 密度ベースクラスタリング(Density-based Clustering)
- 階層クラスタリング(Hierarchical Clustering)
分割ベースクラスタリング:Partitional-based Clustering
分割ベースクラスタリングは、クラスタリングのモデルの中で、最もポピュラーなアプローチです。
分割ベースクラスタリングは、前もってオブジェクトの集合をいくつに分割するか決定します。事前に決めた分割数:\(k\)が、生成するクラスターの数になります。
分割ベースクラスタリングの代表的なモデルには、
- k-mean
- PAM (Partitioning Around Medoids)
- CLARA (Clustering LARge Applications)
- CLARANS (Clustering Large Applications based on RANdomized Search)
などがあります。
密度ベースクラスタリング:Density-based Clustering
密度ベースクラスタリングは、オブジェクトをプロットした際の密度を基準にして、クラスタリングするアプローチです。
低密度領域のクラスターに含まれるオブジェクトは、「外れ値/異常値」とみなすことができます。したがって、密度ベースクラスタリングは異常検知に利用できます。
密度ベースクラスタリングの代表的なモデルには、
- DBSCAN (Density-Based Spatial Clustering of Applications with Noise)
- OPTICS (Ordering Points To Identify the Clustering Structure)
があります。
階層ベースクラスタリング:Hierarchical-based Clustering
階層ベースクラスタリングは、クラスターをマージ、あるいは、分割するアプローチです。
階層ベースクラスタリングには大きく分けて2種類のタイプがあります。
- 凝集型:Agglomerative (bottom-up)
- 分割型:Divisive (top-down):
凝集型は、個々のオブジェクトから類似したオブジェクト同士をマージすることで、クラスターを作ります。全てのオブジェクトを含むクラスターができるまで、作ったクラスター同士のマージを繰り返します。
一方、分割型は、全てのオブジェクトを含む一つのクラスターから開始し、これを分割してクラスター数を増やします。ひとつのオブジェクトしか含まないクラスターができるまで、分割を繰り返します。
それぞれのモデルの詳細な特徴は、別の記事でまとめます。
類似度を測る方法
オブジェクト同士の類似度はどうやって測るんですか?
オブジェクト同士の距離です。距離の大きさから、オブジェクト同士の類似度を判断します。
オブジェクト同士の類似度が高いと、両者の距離は小さくなります。逆に、オブジェクト同士の類似度が低いと、両者の距離は大きくなります。
距離の計測方法はいくつかあり、目的ごとに適切な計測方法を選択する必要があります。
代表的な距離の計測方法を示します。
- マンハッタン距離: Manhattan distance
- ユークリッド距離: Euclidean distance
- チェビシェフ距離: Chebyshev distance
- ミンコスキー距離: Minkowski distance
- コサイン距離: Cosine distance
- ジャッカード距離: Jaccard distance
クラスタリングを扱う難しさ
ここではクラスタリングの課題についてまとめます。
細かい課題をあげ出すときりがないですが、個人的に特に大事だと思うポイントが2つあります。それは、
- データ構造の考慮
- クラスターの要約
です。
いったいどういう意味なんでしょう?
ひとつめは、「データ構造の考慮」です。
同じデータセットであっても、利用するアルゴリズムによって、得られる結果が全く異なります。scikit-learnに良い例があったので引用します。(4)
例えば、左手3つのアルゴリズム:MiniBatch KMeans、Affinity Propagation、MeanShiftは、非球形構造のデータセットをうまく分離できていません。
クラスタリングを使用するときは、データセットの構造をよく考える必要があると分かります。
ふたつめが、「クラスターの要約」です。
教師なし学習の課題とも言えますが、クラスターされた結果に意味を与えるのは人です。
作成するクラスター数は人が決めます。また、クラスター数が増えるほど、クラスターを解釈することが困難になります。
機械的にクラスタリングを実施するだけでなく、扱っているデータに対して、専門的な知識が必要になります。
クラスタリングの特徴だけ聞くと便利そうですが、解釈するために、モデルの特徴や背景知識を身につける必要があるということですかね。
こういった話題に対して、ノーフリーランチ定理(No Free Lunch Theorem)がよく登場します。「どんな問題にもベストパフォーマンスを示す万能なモデルは存在しない」と主張する理論です。(5)
まとめ
この記事は「抑えておきたいクラスタリングの基本」をまとめました。
- クラスタリング
- 教師なし学習の一種
- オブジェクト同士の類似度から、オブジェクトをグループ分けする手法
- モデルの種類は3タイプ
- 分割ベースクラスタリング
- 密度ベースクラスタリング
- 階層ベースクラスタリング
- 類似度の計測
- 類似度はオブジェクト間の距離
- 計測手法の例として、マンハッタン距離、ユークリッド距離、チェビシェフ距離、ミンコスキー距離、コサイン距離、ジャッカード距離
- クラスタリングの課題
- データ構造の考慮
- クラスターの要約
クラスタリングの大枠としては以上です。
他の記事では、各モデルのコンセプト、利点、欠点、アルゴリズムを丁寧にまとめていきたいと思います。
この記事は以上です。
最後まで読んで頂きありがとうございました。
参考資料
(2) NVIDIA, Clustering Analysis (2022/3/13アクセス)
(3) Charu C. Aggarwal, 2015, Data Mining: The Textbook, Springer
(4) sciekit-learn, Comparing different clustering algorithms on toy datasets (2022/3/21アクセス)
この記事は「抑えておきたいクラスタリングの基本」をまとめます。