Slide 1

Slide 1 text

クラスタリング2 密度ベースクラスタリング & クラスタリングの実用上の問題 ⼭本 祐輔 名古屋市⽴⼤学 データサイエンス研究科 [email protected] 第5回 機械学習発展 (導入編)

Slide 2

Slide 2 text

授業資料 2 https://mlnote.hontolab.org/

Slide 3

Slide 3 text

1 「密集」しているデータをクラスタリングする DBSCAN

Slide 4

Slide 4 text

密度準拠型(Density-based)クラスタリングの概要 入力 ・ベクトルの集合(表データ) ・密度の閾値 出力 各ベクトルが所属するクラスタ 利用するケース クラスタ数は未知だが, 密集度でクラスタリングしたいとき A B D C E F G H I A B D C E F G H I ある程度密に群がっている データ同士のみクラスタリング 4 最も直感に近いクラスタリング手法

Slide 5

Slide 5 text

密度ベースクラスタリングの利⽤例1 米国のGPSの位置情報データをクラスタリングして 人が密集している地域を抽出 L. Cao et al., 2009. Enhancing semantic and geographic annotation of web images via logistic canonical correlation regression. In Proceedings of the 17th ACM international conference on Multimedia (MM '09). 5

Slide 6

Slide 6 text

密度ベースクラスタリングの利⽤例2 6 サンフランシスコで撮影された 写真の位置情報 on Flickr 画像出展: https://www.buzzfeed.com/ L. Kennedy et al.: ”How flickr helps us make sense of the world: context and content in community-contributed media collections. In Proceedings of the 15th ACM international conference on Multimedia (MM ‘07)”, 631–640, 2007. 密度ベースの クラスタリング 撮影位置が密集している 場所をクラスタとして抽出 撮影位置密集場所に タグ付けされた情報を可視化

Slide 7

Slide 7 text

密度準拠型クラスタリングの2⼤系統 7 密度準拠型 クラスタリング DBSCAN Mean-Shift ヒューリスティック に基づくアプローチ 統計的アプローチ (密度勾配推定)

Slide 8

Slide 8 text

DBSCAN (Density-based spatial clustering of applications with noise)の概要 入力 ・ベクトルの集合(表データ) ・密度の閾値 - 到達可能距離: ε - コア点の数: minPts 出力 各ベクトルが所属するクラスタ & ノイズデータ 利用するケース クラスタ数は未知だが, 密集度でクラスタリングしたいとき A B D C E F G H I A B D C E F G H I 8 ある程度密に群がっている データ同士のみクラスタリング

Slide 9

Slide 9 text

DBSCANの直感的アイデア コア点となるデータから一定範囲内にデータがあれば それらデータは同じクラスタに属するとみなす 距離εの範囲内にデータ が存在する? 到達可能なデータは 同じクラスタ 9 ( 到 達 可 能 範 囲 ) ε: 到達可能距離

Slide 10

Slide 10 text

コア点 一定の範囲( )内に一定個数(minPts)以上の データがある点をコア点と呼ぶ Aはコア点 (3 ≧ minPts) 10 ε ε ε A B A Bはコア点でない (2 < minPts)

Slide 11

Slide 11 text

DBSCANのアルゴリズム(1/16) ランダムに点を選び,一定の範囲内に 他のデータ点がないかを調べる 1. 11

Slide 12

Slide 12 text

DBSCANのアルゴリズム(2/16) 一定の範囲内に一定個数の点がない場合, その点はノイズと見なし,次の点を調べる 1a. 12 ε

Slide 13

Slide 13 text

DBSCANのアルゴリズム(3/16) 1a. 13 一定の範囲内に一定個数の点がない場合, その点はノイズと見なし,次の点を調べる ε

Slide 14

Slide 14 text

DBSCANのアルゴリズム(4/16) 一定の範囲内に一定個数の点がある場合, 起点データをコア点と見なす.範囲内にある 点はコア点と同じクラスタと見なす 1b. 14 ε

Slide 15

Slide 15 text

DBSCANのアルゴリズム(5/16) 1b. 15 一定の範囲内に一定個数の点がある場合, 起点データをコア点と見なす.範囲内にある 点はコア点と同じクラスタと見なす ε

Slide 16

Slide 16 text

DBSCANのアルゴリズム(6/16) ステップ1の処理を繰り返す 2. 16 ε

Slide 17

Slide 17 text

DBSCANのアルゴリズム(7/16) ステップ1の処理を繰り返す 2. 17 ε

Slide 18

Slide 18 text

DBSCANのアルゴリズム(8/16) ステップ1の処理を繰り返す 2. 18 ε

Slide 19

Slide 19 text

DBSCANのアルゴリズム(9/16) 2. 19 ステップ1の処理を繰り返す ε

Slide 20

Slide 20 text

DBSCANのアルゴリズム(10/16) ステップ1の処理を繰り返す 2. 20 ε

Slide 21

Slide 21 text

DBSCANのアルゴリズム(11/16) 2. 21 ステップ1の処理を繰り返す ε

Slide 22

Slide 22 text

DBSCANのアルゴリズム(12/16) 2. 22 ステップ1の処理を繰り返す ε

Slide 23

Slide 23 text

DBSCANのアルゴリズム(13/16) 2. 23 ステップ1の処理を繰り返す ε

Slide 24

Slide 24 text

DBSCANのアルゴリズム(14/16) 2. 24 ステップ1の処理を繰り返す

Slide 25

Slide 25 text

DBSCANのアルゴリズム(15/16) 3. 25 ε すべての点について,ステップ1の処理が 完了すれば,クラスタリング終了

Slide 26

Slide 26 text

DBSCANのアルゴリズム(16/16) すべての点について,ステップ1の処理が 完了すれば,クラスタリング終了 3. 26 コア点から⼀定範囲内に含まれない データは外れ値と⾒なされる

Slide 27

Slide 27 text

DBSCANの定式化 27 ALGORITHM 1: Pseudocode of Original Sequential DBSCAN Algorithm Input: DB: Database Input: ε: Radius Input: minPts: Density threshold Input: dist: Distance function Data: label: Point labels, initially unde ned 1 foreach point p in database DB do // Iterate over every poin 2 if label(p) unde ned then continue // Skip processed points 3 Neighbors N ← R (DB, dist,p,ε) // Find initial neighbors 4 if |N | < minPts then // Non-core points are noi 5 label(p) ← Noise 6 continue 7 c ← next cluster label // Start a new cluster 8 label(p) ← c 9 Seed set S ← N \ {p} // Expand neighborhood 10 foreach q in S do 11 if label(q) = Noise then label(q) ← c 12 if label(q) unde ned then continue 13 Neighbors N ← R (DB, dist,q,ε) 14 label(q) ← c 15 if |N | < minPts then continue // Core-point check 16 S ← S ∪ N :4 E. Schubert et al. LGORITHM 1: Pseudocode of Original Sequential DBSCAN Algorithm Input: DB: Database Input: ε: Radius Input: minPts: Density threshold Input: dist: Distance function Data: label: Point labels, initially unde ned foreach point p in database DB do // Iterate over every point if label(p) unde ned then continue // Skip processed points Neighbors N ← R (DB, dist,p,ε) // Find initial neighbors if |N | < minPts then // Non-core points are noise label(p) ← Noise continue c ← next cluster label // Start a new cluster label(p) ← c Seed set S ← N \ {p} // Expand neighborhood foreach q in S do if label(q) = Noise then label(q) ← c if label(q) unde ned then continue Neighbors N ← R (DB, dist,q,ε) label(q) ← c if |N | < minPts then continue // Core-point check S ← S ∪ N E. Schubert et al.: "DBSCAN Revisited, Revisited: Why and How You Should (Still) Use DBSCAN". ACM Transactions on Database Systems. 42 (3): 19:1–19:21

Slide 28

Slide 28 text

DBSCAN demo 28 https://www.youtube.com/watch?v=h53WMIImUuc

Slide 29

Slide 29 text

Hands-on タイム 以下のURLにアクセスして, DBSCANによるクラスタリングを体験しましょう https://mlnote.hontolab.org/ 29

Slide 30

Slide 30 text

2 クラスタリングの実用上の問題

Slide 31

Slide 31 text

クラスタリングの評価 〜 事前に正解が定義されている場合 31 C1 C2 C3 C1 97 0 3 C2 5 191 4 C3 4 10 87 正解 予測 正解 予測 C1 C2 C3 C1 33 30 37 C2 51 125 24 C3 26 30 44 正解 予測 Q. どちらの手法のほうが正しく分割できているか? クラスタリング⼿法X クラスタリング⼿法Y A. 予測クラスタに正解が多く含まれている方が良い >

Slide 32

Slide 32 text

正解が定義されているときの評価指標 32 C1 Cj CN C1 m11 m1j m1N Ci mi1 mij miN CN mN1 mNj mNN 正解 予測 純度(purity) = ∑!"# $ max % 𝑚!% ∑ !"# $ 𝑀! … … … … … … 𝑀! = " "#$ % 𝑚!" 和 ⼀番⼤きいものがmax mij そもそも正解が分かっているのであれば「教師あり学習」した⽅が吉 どんなデータを正解とするかはタスクに強く依存する…

Slide 33

Slide 33 text

代表的なクラスタリング評価指標(正解が定義されていないとき) 33 𝑆𝑆𝐸 = * $%& ' * 𝒙∈*! 𝒙 − 𝒎' + クラスタ内誤差平方和 クラスタkの重⼼ クラスタkの要素 同⼀クラスタ内の要素はできるだけクラスタの重⼼に 近くあるべきという発想 定義上,密度準拠型クラスタリングをうまく評価できない…

Slide 34

Slide 34 text

様々なクラスタリングの⽐較 34 ● タスクに応じた最適な手法を選択する必要あり ● クラスタリングはあくまでデータ理解のための手法

Slide 35

Slide 35 text

クラスタリング⼿法の⽐較 K-means 階層的クラスタリング DBSCAN ケース クラスタ数を指定して データを分割したい データ分割の様子 を確認したい 密度を基に クラスタリングしたい 計算量 ○ △ △ クラスタの 形状 超球状 (重心から一定距離内 の集合) クラスタ距離の 定義による (例: 最短距離法→ 鎖状) 任意 メリット 良い意味で単純 (最もよく用いられる) クラスタが作られる 様子が把握できる • 任意の形状の クラスタが抽出可 • 外れ値を考慮できる デメリット ・クラスタ数の指定 ・初期値依存 データ数が多いと 解釈が難しい パラメータ調整が 難しい (minPts & eps) 35

Slide 36

Slide 36 text

K-meansの初期値問題へのアプローチ 36 クラスタ初期値によって結果が大きく変わることが… KKZ法は1つの解決アプローチ Q. A. 最も距離が離れているK点を初期クラスタとする⽅法 K=3の場合,⾚い点を 初期クラスタとする

Slide 37

Slide 37 text

エルボー法 〜 K-meansクラスタリングのクラスタ決定⽅法 37 クラスタ数の増加に対してクラスタ内誤差平方和(SSE)の 減少傾向が大きく変わるクラスタ数を最適クラスタ数とする K=3でSSEの減少傾向が⼤きく変化 → 最適クラスタ数=3とする 最適なクラスタ数はどう決める? Q. A.

Slide 38

Slide 38 text

直感に反するK-meansの結果例(K=3) 38 S. Guha et al. “CURE: an efficient clustering algorithm for large databases”, In Proceedings of the ACM SIGMOD international conference on Management of data (SIGMOD '98)., pp.73–84, 1998. K-meansは,各クラスタ内の要素数が ほぼ等しいという暗黙的仮定を置いている

Slide 39

Slide 39 text

クラスタ距離の定義とデンドログラム @階層的クラスタリング 39 524 14. Unsupervised Learning Average Linkage Complete Linkage Single Linkage FIGURE 14.13. Dendrograms from agglomerative hierarchical clustering of hu- ヒト腫瘍DNAマイクロアレイデータに対する階層的クラスタリング 群平均法 最⻑距離法 最短距離法 デンドログラムはクラスタ距離やデータの分布に敏感 画像出典: T. Hastie et al. (2009): “The Elements of Statistical Learning”, Springer.

Slide 40

Slide 40 text

より性能がよいクラスタリング⼿法 K-means X-means EMアルゴリズム ・クラスタ数指定なし & ⾼速化 ・BIC(ベイズ情報量基準)による制御 • データが複数クラスタに属してもOK • クラスタの形状を柔軟に 40 K-means++ 初期値によって結果が⼤きく変わらないよう 初期クラスタの設定を⼯夫(KKZ法の改良) DBSCAN OPTICS DBSCANのパラメータ調整問題を解決

Slide 41

Slide 41 text

⾼次元データ x 次元の呪い 41 次元の呪い データの次元数が⼤きくなるとデータの特徴をうまく捉える ことが難しくなる有名現象. 具体的事項1 データの次元数が多くなるほど,学習に必要なデータが 指数関数的に増加(過学習につながる) 具体的事項2 ⾼次元空間では,データの⼤半が空間の端によってしまい, データの類似性判定が難しくなる(球⾯集中現象)

Slide 42

Slide 42 text

球体の体積 42 2次元球体の体積 r 𝜋𝑟! r 3次元球体の体積 4 3 𝜋𝑟" ? n次元球体の体積 𝜋&/( Γ(𝑛/2 + 1) 𝑟&

Slide 43

Slide 43 text

超球体の“端”の体積(1/3) 43 半径がrのn次元球体と半径が0.99rのn次元球体 の間の領域の体積と外側の球体の体積の⽐は? r 0.99r Q. = 𝑘𝑟! − 𝑘 - 0.99!𝑟! 𝑘𝑟! = 1 − 0.99# 𝜋!/# Γ(𝑛/2 + 1) 𝑟! − 𝜋!/# Γ 𝑛/2 + 1 (0.99𝑟)! 𝜋!/# Γ(𝑛/2 + 1) 𝑟! (超球の表⾯付近)

Slide 44

Slide 44 text

超球体の“端”の体積(2/3) 44 半径がrのn次元球体と半径が0.99rのn次元球体 の間の領域の体積と外側の球体の体積の⽐は? Q. (超球の表⾯付近)

Slide 45

Slide 45 text

超球体の“端”の体積(3/3) 45 半径がrのn次元球体と半径が0.99rのn次元球体 の間の領域の体積と外側の球体の体積の⽐は? Q. (超球の表⾯付近) ほぼ100%

Slide 46

Slide 46 text

機械学習においてやっかいな「球⾯集中現象」(1/3) 46 超⾼次元空間における 半径がrのn次元球体と半径が0.99rのn次元球体 の間の領域の体積と外側の球体の体積の⽐は? r 0.99r Q. lim #→% (1 − 0.99#) = 1 超高次元空間では 超球の体積と赤い隙間の部分 (超球の表面付近)の体積が 同じになる!!!

Slide 47

Slide 47 text

機械学習においてやっかいな「球⾯集中現象」(2/3) 47 (超)球体の中にデータが均⼀に分布 しているとすると,空間中に存在する データの数は体積に⽐例 超⾼次元空間では,ある点から 半径r以内にあるデータは すべて超球の端に存在する 超高次元空間では,ある点の周りにあるデータは すべて「類似しない」ことになる ⾮常に⼤きいrを考えると… 超⾼次元では端の体積は100%…

Slide 48

Slide 48 text

機械学習においてやっかいな「球⾯集中現象」(3/3) 48 (超)球体の中にデータが均⼀に分布 しているとすると,空間中に存在する データの数は体積に⽐例 超⾼次元空間では,ある点から 半径r以内にあるデータは すべて超球の端に存在する 超高次元空間では,ある点の周りにあるデータは すべて「類似しない」ことになる ⾮常に⼤きいrを考えると… 超⾼次元では端の体積は100%… 超高次元空間では データ間の類似性(距離)をうまく扱えない 機械学習・データマイニングができない 距離・類似計算に依存する 特徴選択・次元圧縮が必要

Slide 49

Slide 49 text

グラフデータに対する対応 49 ID X1 X3 X3 Y 1 … … … 39 2 … … … 67 … … … … … K-means 階層的クラスタリング DBSCAN ベクトル(表)データ グラフデータ グラフクラスタリング ベクトル 変換

Slide 50

Slide 50 text

Hands-on タイム 以下のURLにアクセスして, クラスタリングの実用上の問題を体験しましょう https://mlnote.hontolab.org/ 50

Slide 51

Slide 51 text

今後の予定 51 回 実施⽇ トピック 1 04/14 ガイダンス 2 04/21 pandas⼊⾨ 3 04/28 決定⽊からはじめる機械学習 4 05/12 クラスタリング1:k-means & 階層的クラスタリング 5 05/19 クラスタリング2:密度ベースクラスタリング 6 05/26 分類1:K近傍法 & 教師あり機械学習のお作法 7 06/02 分類2:サポートベクターマシン 8 06/09 分類3:ニューラルネットワーク⼊⾨