クラスタリング解析:最適なアルゴリズムの選択

Pythonで学ぶMachine Learning面接対策

Lisa Stuart

Data Scientist

クラスタリングアルゴリズム

  • 特徴量 >> 観測数
  • 学習がより困難
  • 距離計算に依存
  • 最も一般的な教師なし手法
Pythonで学ぶMachine Learning面接対策

クラスタリングの実用例

  • 顧客セグメンテーション
  • 文書分類
  • 保険・取引の不正検知
  • 画像セグメンテーション
  • 異常検知
  • そのほか多数
Pythonで学ぶMachine Learning面接対策

距離尺度:マンハッタン(タクシー)距離

マンハッタン距離の図

1 https://en.wikipedia.org/wiki/Taxicab_geometry
Pythonで学ぶMachine Learning面接対策

距離尺度:ユークリッド距離

ユークリッド距離の図

1 http://rosalind.info/glossary/euclidean-distance/
Pythonで学ぶMachine Learning面接対策

K-means

K-means の手順

  1. 初期セントロイド
  2. 各観測を最も近いセントロイドに割当て
  3. 新しいセントロイドを作成
  4. 手順2と3を反復
1 http://sherrytowers.com/2013/10/24/k-means-clustering/
Pythonで学ぶMachine Learning面接対策

階層的凝集型クラスタリング

階層的クラスタリングのデンドログラム

1 https://www.datanovia.com/en/lessons/agglomerative-hierarchical-clustering/
Pythonで学ぶMachine Learning面接対策

凝集型クラスタリングのリンク法

  • Ward 法
  • 最大(完全)リンク
  • 平均リンク
  • 単一リンク
Pythonで学ぶMachine Learning面接対策

クラスタリングアルゴリズムの選択

クラスタ間距離

  • クラスタの安定性評価
  • K-means と HC はユークリッド距離を使用
  • クラスタ間・クラスタ内距離

「適切な非類似度の選択は、クラスタリングの成功において、アルゴリズム選択よりはるかに重要である。」- Elements of Statistical Learning より

1 https://slideplayer.com/slide/8363774/
Pythonで学ぶMachine Learning面接対策

クラスタリング関数

関数/メソッド 戻り値
sklearn.cluster.Kmeans K-means アルゴリズム
sklearn.cluster.AgglomerativeClustering 凝集型クラスタリング
kmeans.inertia_ 最近傍クラスタ中心までのSS距離
scipy.cluster.hierarchy as sch デンドログラム用の階層的クラスタリング
sch.dendrogram() デンドログラム関数
Pythonで学ぶMachine Learning面接対策

練習に進みましょう!

Pythonで学ぶMachine Learning面接対策

Preparing Video For Download...