クラスタリング:類似度が高いオブジェクトのグループ化

クラスタリング(またはクラスター分析)は、集合に含まれるオブジェクトの類似度に基づき、それぞれのオブジェクトをグループ分けする手法です。

クラスタリングは、例えば、機械学習、パターン認識、画像分析、情報検索、バイオインフォマティクス、 など、ラベルを持たないオブジェクトをグループ化したい場面で利用します。

ワカメさん

この記事は「抑えておきたいクラスタリングの基本」をまとめます。

この記事がカバーする内容
  • クラスタリングとは何か?
  • どんな場面でクラスタリングを利用するか?
  • どんなクラスタリング手法があるか?
  • どのようにオブジェクト同士の類似度を測るか?
スポンサーリンク

クラスタリングの概要

ワカメさん

クラスタリングに関して抑えておきたいポイントを手短にまとめます。

クラスタリングの大事なポイント
  • クラスタリングは、「教師なし学習(Unsupervised Learning)」 の一種
  • クラスタリングは、オブジェクト同士の類似度を評価し、オブジェクトをいくつかのグループに分ける手法
  • 同じクラスターに含まれるオブジェクト同士の類似度は高い
  • 異なるクラスターに含まれるオブジェクト同士の類似度は低い
Example of the generalized clustering process using distance measures
Fig 1: Example of the generalized clustering process using distance measures (1)

クラスタリングを扱う場面

PexelsによるPixabayからの画像
ヒトデちゃん

実社会のどのような場面でクラスタリングは利用されていますか?

マーケティング、金融、科学、システム、ネットワーク、など、様々な分野でクラスタリングは利用されています。以下にクラスタリングの利用例をまとめます。

クラスタリングの利用例
  • カスタマー・セグメンテーション
  • レコメンダー・システム
  • 信号の異常検知
  • ゲノム解析
  • etc…

例えば、消費者の購買データをクラスタリングすれば、似た購買傾向を示す消費者をいくつかのグループにまとめることができ、マーケティング戦略に役立ちます。

多量の情報をグループ化してまとめることは、「情報の要約」とみなすこともできます。

通常のパターンとは異なるオブジェクトを見つけ出し、新たな発見に役立てることもできます。

スポンサーリンク

クラスタリングのモデル

ヒトデちゃん

クラスタリングって、いくつか方法があるんでしょう?

クラスタリングのモデルは、大きく以下3種類に分類できます。

モデルの種類
  1. 分割クラスタリング (Partitional Clustering)
  2. 密度ベースクラスタリング(Density-based Clustering)
  3. 階層クラスタリング(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つあります。それは、

  1. データ構造の考慮
  2. クラスターの要約

です。

ヒトデちゃん

いったいどういう意味なんでしょう?

ひとつめは、「データ構造の考慮」です。

同じデータセットであっても、利用するアルゴリズムによって、得られる結果が全く異なります。scikit-learnに良い例があったので引用します。(4)

Fig 2: Comparing different clustering algorithms on toy datasets (4)

例えば、左手3つのアルゴリズム:MiniBatch KMeans、Affinity Propagation、MeanShiftは、非球形構造のデータセットをうまく分離できていません。

クラスタリングを使用するときは、データセットの構造をよく考える必要があると分かります。

ふたつめが、「クラスターの要約」です。

教師なし学習の課題とも言えますが、クラスターされた結果に意味を与えるのは人です。

作成するクラスター数は人が決めます。また、クラスター数が増えるほど、クラスターを解釈することが困難になります。

機械的にクラスタリングを実施するだけでなく、扱っているデータに対して、専門的な知識が必要になります。

ヒトデちゃん

クラスタリングの特徴だけ聞くと便利そうですが、解釈するために、モデルの特徴や背景知識を身につける必要があるということですかね。

ワカメさん

こういった話題に対して、ノーフリーランチ定理(No Free Lunch Theorem)がよく登場します。「どんな問題にもベストパフォーマンスを示す万能なモデルは存在しない」と主張する理論です。(5)

まとめ

この記事は「抑えておきたいクラスタリングの基本」をまとめました。

抑えておきたいクラスタリングの基本
  • クラスタリング
    • 教師なし学習の一種
    • オブジェクト同士の類似度から、オブジェクトをグループ分けする手法
  • モデルの種類は3タイプ
    • 分割ベースクラスタリング
    • 密度ベースクラスタリング
    • 階層ベースクラスタリング
  • 類似度の計測
    • 類似度はオブジェクト間の距離
    • 計測手法の例として、マンハッタン距離、ユークリッド距離、チェビシェフ距離、ミンコスキー距離、コサイン距離、ジャッカード距離
  • クラスタリングの課題
    • データ構造の考慮
    • クラスターの要約
ワカメさん

クラスタリングの大枠としては以上です。

他の記事では、各モデルのコンセプト、利点、欠点、アルゴリズムを丁寧にまとめていきたいと思います。

この記事は以上です。

最後まで読んで頂きありがとうございました。

参考資料

(1) Irani, J.K., Pise, N.N., & Phatak, M.V.. Clustering Techniques and the Similarity Measures used in Clustering: A Survey. International Journal of Computer Applications, 2016, 134, 9-14

(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アクセス)

(5) D. H. Wolpert and W. G. Macready, “No free lunch theorems for optimization,” IEEE Transactions on Evolutionary Computation, vol. 1, no. 1, pp. 67-82, April 1997, doi: 10.1109/4235.585893.

スポンサーリンク
この記事が気にいったらシェアしてね!
0 0 votes
Article Rating
Subscribe
Notify of
guest

0 Comments
Inline Feedbacks
View all comments
ABOUT US
ワカメ
Data Scientist, Master of Data Science & Master of Engineering in Material Science
このブログは以下2点を目的に運営.
1. 管理人の学び・体験の復習機会
2. 海外留学を目指す方の参考情報
趣味の範囲で淡々と更新します.
*ブログ・SNSは所属組織と無関係の個人発信.