Slide 1

Slide 1 text

クラスタリング1 クラスタリング1 k-means k-means 作成者:K (リンク)

Slide 2

Slide 2 text

『クラスタリング』で説明する項目 k-means k-means++ X-means Part1 Part2

Slide 3

Slide 3 text

今回の内容 •クラスタリングとは •k-means •実験 •k-means++ •まとめ クラスタリングとk-meansアルゴリズムについて説明します

Slide 4

Slide 4 text

クラスタリング データを教師データ無しでいくつかのグループにまとめ上げる方法 データ は与えられている が、正解データ は無い      =教師なし学習 X y

Slide 5

Slide 5 text

アルゴリズム データを用意します 2つのグループに分けること ができそうなので、 と 設定します k = 2

Slide 6

Slide 6 text

アルゴリズム 各クラスタの初期値を設定します 2つの初期値を作成します (作成の仕方は色々考えられますが、ここ ではデータのある空間の中に■と■を作 成してそれを初期値としました) ࢀߟจݙɿk-means clustering ͷॳظ஋ͷܾΊํΛݩʹͯ͠આ໌͍ͯ͠·͢

Slide 7

Slide 7 text

アルゴリズム クラスタの初期値に近い点を求め、それらをまとめます それぞれの初期値と距離が近 い点を赤と青で色付けします

Slide 8

Slide 8 text

アルゴリズム クラスタごとの平均値(セントロイド)を求めます 色付けした点の平均値を求めて、 それをクラスタを代表する点(セ ントロイド, centroid)とします

Slide 9

Slide 9 text

アルゴリズム セントロイドから近い点を再び求め、クラスタを割り当てます セントロイドから距離が近い点を 色付けします

Slide 10

Slide 10 text

アルゴリズム 再びセントロイドを再計算し、また同じことを繰り返します 色付けした点の平均値を求めて、 それをクラスタを代表する点(セ ントロイド, centroid)とします

Slide 11

Slide 11 text

アルゴリズム セントロイドが移動しなくなったら、計算を終了します! この「セントロイドを求める↔色 付けし直す」の作業を繰り返し、 セントロイドが移動量が十分小さ くなったら計算を終了します

Slide 12

Slide 12 text

実験!

Slide 13

Slide 13 text

K-meansクラスタリング ←のデータにk=2としてk-means を適用すると、綺麗にデータがク ラスタリングされる 色=クラスタ

Slide 14

Slide 14 text

クラスタの境界が明確でない場合 kの指定が適切でないと、一つの クラスタを複数の部分に分けてし まう場合がある

Slide 15

Slide 15 text

clusters(k)パラメタの影響 kの指定が適切でないと、一つの クラスタを複数の部分に分けてし まう場合がある

Slide 16

Slide 16 text

k-meansの問題 仮に初期値として隣接する点を選んでしまうと 収束するまでに時間がかかる可能性がある 初期値次第で計算終了に時間がかかる+結果が変わるかもしれない ▼収束後の結果

Slide 17

Slide 17 text

k-means++<> はじめに、ランダムに点を一つ選ぶ 次の点は、はじめに選んだ点との距離 に基づいた確率分布に基づいて選ぶ (遠いほど選ばれやすくなる) ※scikit-learnはデフォルトではk-means++が実行されます 参考文献:sklearn.cluster.KMeans 『k-meansの初期値はなるべく離れた点を選んだほうが良い』というアイデアを利用 [1] Arthur, David, and Sergei Vassilvitskii. k-means++: The advantages of careful seeding. Stanford, 2006.

Slide 18

Slide 18 text

randomとk-mans++の比較 •K-means++はすべて同じような クラスタリングをすることができ ている •K-mansは初期値次第でクラスタ の境界が変化していることが確 認できる

Slide 19

Slide 19 text

まとめ K-meanアルゴリズムについて説明しました •クラスタリングとは、データを教師データ無しでいくつかのグループにまとめ上げる 方法 •K-meansでは、セントロイドの計算とクラスタの割り当てを繰り返すことでクラスタ のまとまりを求める •K-meansは初期値の決め方によって結果が変わったり収束するまでに時間がかかる 可能性があり、k-means++では改良を加えてこの問題を軽減している •パラメタkの設定次第では不自然な形のクラスタができることもある

Slide 20

Slide 20 text

参考文献 •https://ja.wikipedia.org/wiki/K%E5%B9%B3%E5%9D%87%E6%B3%95 •sklearn.cluster.KMeans •Arthur, David, and Sergei Vassilvitskii. k-means++: The advantages of careful seeding. Stanford, 2006.