Soumettre la recherche
Mettre en ligne
k-means(k-平均法)
•
7 j'aime
•
9,534 vues
Y
Yuta Tomomatsu
Suivre
WSLの勉強会の資料。 クラスタリングの軽い説明からk-meansの説明、k-meansの初期値選択アルゴリズムに関しての資料。 最後におまけ的にJavadocの説明をのせる。
Lire moins
Lire la suite
Données & analyses
Signaler
Partager
Signaler
Partager
1 sur 52
Télécharger maintenant
Télécharger pour lire hors ligne
Recommandé
[DL輪読会]Reward Augmented Maximum Likelihood for Neural Structured Prediction
[DL輪読会]Reward Augmented Maximum Likelihood for Neural Structured Prediction
Deep Learning JP
K meansによるクラスタリングの解説と具体的なクラスタリングの活用方法の紹介
K meansによるクラスタリングの解説と具体的なクラスタリングの活用方法の紹介
Takeshi Mikami
バンディットアルゴリズム入門と実践
バンディットアルゴリズム入門と実践
智之 村上
最近のKaggleに学ぶテーブルデータの特徴量エンジニアリング
最近のKaggleに学ぶテーブルデータの特徴量エンジニアリング
mlm_kansai
SSII2022 [SS2] 少ないデータやラベルを効率的に活用する機械学習技術 〜 足りない情報をどのように補うか?〜
SSII2022 [SS2] 少ないデータやラベルを効率的に活用する機械学習技術 〜 足りない情報をどのように補うか?〜
SSII
(修正)機械学習デザインパターン(ML Design Patterns)の解説
(修正)機械学習デザインパターン(ML Design Patterns)の解説
Hironori Washizaki
Kaggleのテクニック
Kaggleのテクニック
Yasunori Ozaki
グラフィカルモデル入門
グラフィカルモデル入門
Kawamoto_Kazuhiko
Recommandé
[DL輪読会]Reward Augmented Maximum Likelihood for Neural Structured Prediction
[DL輪読会]Reward Augmented Maximum Likelihood for Neural Structured Prediction
Deep Learning JP
K meansによるクラスタリングの解説と具体的なクラスタリングの活用方法の紹介
K meansによるクラスタリングの解説と具体的なクラスタリングの活用方法の紹介
Takeshi Mikami
バンディットアルゴリズム入門と実践
バンディットアルゴリズム入門と実践
智之 村上
最近のKaggleに学ぶテーブルデータの特徴量エンジニアリング
最近のKaggleに学ぶテーブルデータの特徴量エンジニアリング
mlm_kansai
SSII2022 [SS2] 少ないデータやラベルを効率的に活用する機械学習技術 〜 足りない情報をどのように補うか?〜
SSII2022 [SS2] 少ないデータやラベルを効率的に活用する機械学習技術 〜 足りない情報をどのように補うか?〜
SSII
(修正)機械学習デザインパターン(ML Design Patterns)の解説
(修正)機械学習デザインパターン(ML Design Patterns)の解説
Hironori Washizaki
Kaggleのテクニック
Kaggleのテクニック
Yasunori Ozaki
グラフィカルモデル入門
グラフィカルモデル入門
Kawamoto_Kazuhiko
ユーザーサイド情報検索システム
ユーザーサイド情報検索システム
joisino
『バックドア基準の入門』@統数研研究集会
『バックドア基準の入門』@統数研研究集会
takehikoihayashi
Word2vecの理論背景
Word2vecの理論背景
Masato Nakai
猫でも分かるVariational AutoEncoder
猫でも分かるVariational AutoEncoder
Sho Tatsuno
[DL輪読会]Wasserstein GAN/Towards Principled Methods for Training Generative Adv...
[DL輪読会]Wasserstein GAN/Towards Principled Methods for Training Generative Adv...
Deep Learning JP
ナレッジグラフ入門
ナレッジグラフ入門
KnowledgeGraph
ブースティング入門
ブースティング入門
Retrieva inc.
SSII2021 [OS2-01] 転移学習の基礎:異なるタスクの知識を利用するための機械学習の方法
SSII2021 [OS2-01] 転移学習の基礎:異なるタスクの知識を利用するための機械学習の方法
SSII
全力解説!Transformer
全力解説!Transformer
Arithmer Inc.
NIPS2017読み会 LightGBM: A Highly Efficient Gradient Boosting Decision Tree
NIPS2017読み会 LightGBM: A Highly Efficient Gradient Boosting Decision Tree
Takami Sato
Googleの新しい検索技術 Knowledge Graphについて
Googleの新しい検索技術 Knowledge Graphについて
maruyama097
[DL輪読会]ドメイン転移と不変表現に関するサーベイ
[DL輪読会]ドメイン転移と不変表現に関するサーベイ
Deep Learning JP
【メタサーベイ】数式ドリブン教師あり学習
【メタサーベイ】数式ドリブン教師あり学習
cvpaper. challenge
[DL輪読会]Deep Learning 第15章 表現学習
[DL輪読会]Deep Learning 第15章 表現学習
Deep Learning JP
勾配降下法の最適化アルゴリズム
勾配降下法の最適化アルゴリズム
nishio
強化学習の基礎と深層強化学習(東京大学 松尾研究室 深層強化学習サマースクール講義資料)
強化学習の基礎と深層強化学習(東京大学 松尾研究室 深層強化学習サマースクール講義資料)
Shota Imai
スパース推定法による統計モデリング(入門)
スパース推定法による統計モデリング(入門)
Hidetoshi Matsui
[DL輪読会]Flow-based Deep Generative Models
[DL輪読会]Flow-based Deep Generative Models
Deep Learning JP
Attentionの基礎からTransformerの入門まで
Attentionの基礎からTransformerの入門まで
AGIRobots
畳み込みLstm
畳み込みLstm
tak9029
Contenu connexe
Tendances
ユーザーサイド情報検索システム
ユーザーサイド情報検索システム
joisino
『バックドア基準の入門』@統数研研究集会
『バックドア基準の入門』@統数研研究集会
takehikoihayashi
Word2vecの理論背景
Word2vecの理論背景
Masato Nakai
猫でも分かるVariational AutoEncoder
猫でも分かるVariational AutoEncoder
Sho Tatsuno
[DL輪読会]Wasserstein GAN/Towards Principled Methods for Training Generative Adv...
[DL輪読会]Wasserstein GAN/Towards Principled Methods for Training Generative Adv...
Deep Learning JP
ナレッジグラフ入門
ナレッジグラフ入門
KnowledgeGraph
ブースティング入門
ブースティング入門
Retrieva inc.
SSII2021 [OS2-01] 転移学習の基礎:異なるタスクの知識を利用するための機械学習の方法
SSII2021 [OS2-01] 転移学習の基礎:異なるタスクの知識を利用するための機械学習の方法
SSII
全力解説!Transformer
全力解説!Transformer
Arithmer Inc.
NIPS2017読み会 LightGBM: A Highly Efficient Gradient Boosting Decision Tree
NIPS2017読み会 LightGBM: A Highly Efficient Gradient Boosting Decision Tree
Takami Sato
Googleの新しい検索技術 Knowledge Graphについて
Googleの新しい検索技術 Knowledge Graphについて
maruyama097
[DL輪読会]ドメイン転移と不変表現に関するサーベイ
[DL輪読会]ドメイン転移と不変表現に関するサーベイ
Deep Learning JP
【メタサーベイ】数式ドリブン教師あり学習
【メタサーベイ】数式ドリブン教師あり学習
cvpaper. challenge
[DL輪読会]Deep Learning 第15章 表現学習
[DL輪読会]Deep Learning 第15章 表現学習
Deep Learning JP
勾配降下法の最適化アルゴリズム
勾配降下法の最適化アルゴリズム
nishio
強化学習の基礎と深層強化学習(東京大学 松尾研究室 深層強化学習サマースクール講義資料)
強化学習の基礎と深層強化学習(東京大学 松尾研究室 深層強化学習サマースクール講義資料)
Shota Imai
スパース推定法による統計モデリング(入門)
スパース推定法による統計モデリング(入門)
Hidetoshi Matsui
[DL輪読会]Flow-based Deep Generative Models
[DL輪読会]Flow-based Deep Generative Models
Deep Learning JP
Attentionの基礎からTransformerの入門まで
Attentionの基礎からTransformerの入門まで
AGIRobots
畳み込みLstm
畳み込みLstm
tak9029
Tendances
(20)
ユーザーサイド情報検索システム
ユーザーサイド情報検索システム
『バックドア基準の入門』@統数研研究集会
『バックドア基準の入門』@統数研研究集会
Word2vecの理論背景
Word2vecの理論背景
猫でも分かるVariational AutoEncoder
猫でも分かるVariational AutoEncoder
[DL輪読会]Wasserstein GAN/Towards Principled Methods for Training Generative Adv...
[DL輪読会]Wasserstein GAN/Towards Principled Methods for Training Generative Adv...
ナレッジグラフ入門
ナレッジグラフ入門
ブースティング入門
ブースティング入門
SSII2021 [OS2-01] 転移学習の基礎:異なるタスクの知識を利用するための機械学習の方法
SSII2021 [OS2-01] 転移学習の基礎:異なるタスクの知識を利用するための機械学習の方法
全力解説!Transformer
全力解説!Transformer
NIPS2017読み会 LightGBM: A Highly Efficient Gradient Boosting Decision Tree
NIPS2017読み会 LightGBM: A Highly Efficient Gradient Boosting Decision Tree
Googleの新しい検索技術 Knowledge Graphについて
Googleの新しい検索技術 Knowledge Graphについて
[DL輪読会]ドメイン転移と不変表現に関するサーベイ
[DL輪読会]ドメイン転移と不変表現に関するサーベイ
【メタサーベイ】数式ドリブン教師あり学習
【メタサーベイ】数式ドリブン教師あり学習
[DL輪読会]Deep Learning 第15章 表現学習
[DL輪読会]Deep Learning 第15章 表現学習
勾配降下法の最適化アルゴリズム
勾配降下法の最適化アルゴリズム
強化学習の基礎と深層強化学習(東京大学 松尾研究室 深層強化学習サマースクール講義資料)
強化学習の基礎と深層強化学習(東京大学 松尾研究室 深層強化学習サマースクール講義資料)
スパース推定法による統計モデリング(入門)
スパース推定法による統計モデリング(入門)
[DL輪読会]Flow-based Deep Generative Models
[DL輪読会]Flow-based Deep Generative Models
Attentionの基礎からTransformerの入門まで
Attentionの基礎からTransformerの入門まで
畳み込みLstm
畳み込みLstm
k-means(k-平均法)
1.
k-means(k-平均法) (+Javadocの説明) WSL 勉強会 2016/06/19(⽇) 友松祐太 2016/6/19 1
2.
はじめに • 本スライドは本・ネットの資料を参考に作成した資料です。資 料内に誤りがあるかもしれません。。(指摘をお願いします。) 2016/6/19 2
3.
もくじ • Introduction(クラスタリングについて) • k-means •
k-meansの初期値問題(初期値選択アルゴリズム) • KKZアルゴリズム • k-means++アルゴリズム • k-meansのさらなる問題点 • おまけ(Javadocのすゝめ) 2016/6/19 3
4.
Introduction (クラスタリングについて) 2016/6/19 4
5.
クラスタリングとは • クラスタリングとは? データの集合を”似たもの同⼠”でグループ化する作業。 教師なしなので、あらかじめどんなグループが出来上がるかわからない • クラスタとは? クラスタリングの結果できあがったグループ。 •
クラスタリングの種類は以下の2つの観点で種類分けできる ハードクラスタリングorソフトクラスタリング 階層型クラスタリングor⾮階層型クラスタリング 2016/6/19 5
6.
ハード or ソフト •
ハードクラスタリング 各ベクトルが1つのクラスタに 所属 • ソフトクラスタリング 各ベクトルが全てのクラスタに ある割合で所属 2016/6/19 6 クラスタA クラスタB クラスタA クラスタB クラスタA クラスタB クラスタA:70% クラスタB:30% クラスタA:20% クラスタB:80%
7.
階層型クラスタリング • 最も近いクラスタを1つずつ併合していきクラスタリングを⾏ う⼿法。 • クラスタ数が1つになったときの樹形図(dendrogram)を任意の ⾼さで切ることによって,欲しいクラスタ数を得ることができる。 2016/6/19
7
8.
階層型クラスタリング 2016/6/19 8
9.
階層型クラスタリング 2016/6/19 9
10.
階層型クラスタリング 2016/6/19 10
11.
階層型クラスタリング 2016/6/19 11
12.
階層型クラスタリング 2016/6/19 12
13.
クラスタリング⼿法とその分類 2016/6/19 13 階層型クラスタリング ⾮階層型クラスタリング ソ フ ト ク ラ ス タ リ ン グ ハ ド ク ラ ス タ リ ン グ ・k-means ・x-means ・スペクトラルクラスタリング ・単連結法
・完全連結法 ・群平均法 ・ウォード法 ・重⼼法 ・メディアン法 ・Fuzzy c-means ・混合分布モデル ・pLSI ・NMF
14.
クラスタリング⼿法とその分類 2016/6/19 14 階層型クラスタリング ⾮階層型クラスタリング ソ フ ト ク ラ ス タ リ ン グ ハ ド ク ラ ス タ リ ン グ ・k-means<-今⽇はこれを扱う ・x-means ・スペクトラルクラスタリング ・単連結法
・完全連結法 ・群平均法 ・ウォード法 ・重⼼法 ・メディアン法 ・Fuzzy c-means ・混合分布モデル ・pLSI ・NMF
15.
k-means 2016/6/19 15
16.
k-meansとは • まずデータを適当に分割し、後からうまく分割するように調整 していくことによってクラスタリングを⾏う⽅法。k-meansの kとはクラスタをいくつにわけるかという数で、ユーザが事前 に決定する。 2016/6/19 16
17.
k-meansアルゴリズム Step0 ・各ベクトルの所属クラスタを乱数で選ぶ。 Step1 ・各クラスタに所属するベクトルの重⼼をとり、ク ラスタの代表ベクトルとする。 Step2
・各ベクトルから⼀番近いクラスタの代表ベクトル を新たな所属クラスタとする。 Step3 ・所属クラスタが更新されていればStep1へ、更新さ れていなければ終了 Finish 2016/6/19 17
18.
k-means(例)その1 2016/6/19 18 Step0:各ベクトルの所 属クラスタを乱数で選 ぶ。 Step1:各クラスタに所 属するベクトルの重⼼ をとり、クラスタの代 表ベクトルとする。
19.
k-means(例)その2 2016/6/19 19 Step2:各ベクトルから⼀ 番近いクラスタの代表ベ クトルを新たな所属クラ スタとする。 Step3: 所属クラスタ が更新されているので step1へ Step1:各クラスタに所 属するベクトルの重⼼ をとり、クラスタの代 表ベクトルとする。
20.
k-means(例)その3 2016/6/19 20 Step2:各ベクトルから ⼀番近いクラスタの代 表ベクトルを新たな所 属クラスタとする。 Step3: クラスタの割 当に変更がない→終了
21.
k-meansの初期値問題 2016/6/19 21
22.
k-meansの初期値問題 このようなベクトル群を2つのクラスタに分けたい・・・ 2016/6/19 22
23.
k-meansの初期値問題 理想的にはこのように分かれて欲しい・・・ 2016/6/19 23
24.
k-meansの初期値問題 初期の割当てによってはこのように 分かれてしまうことも・・・2016/6/19 24
25.
KKZ法 • このような初期値ランダム問題に対処するために考案された1 つ⽬の⼿法。 • 後で紹介するk-means++法の先⾏研究。 2016/6/19
25
26.
KKZ法 アルゴリズム Step0 ・ランダムに1つベクトルを選び代表ベクトルとする Step1
・代表ベクトルの数がk個になったら終了 Step2 ・それぞれのベクトル𝑥に関して、最も近い代表ベクト ルの距離を求める。 Step3 ・Step2で求めた距離が最⼤になるベクトルを新たな代 表ベクトルとして選択 2016/6/19 26 Finish
27.
KKZアルゴリズム •4つのベクトルから k=3(個)の初期代表ベ クトルを選択するとす る(実際はほぼありえな い状況…) 2016/6/19 27
28.
KKZアルゴリズム •[Step0] ランダムに1つベクトル を選び代表ベクトルと する 2016/6/19 28
29.
KKZアルゴリズム •[Step1] 代表ベクトルの数が1個 ≠k個なのでアルゴリズ ムを続ける 2016/6/19 29
30.
KKZアルゴリズム •[Step2] それぞれのベクトル𝑥に 関して、最も近い代表 ベクトルの距離を求め る。 2016/6/19 30
31.
KKZアルゴリズム •[Step3] Step2で求めた距離が最 ⼤になるベクトルを新 たな代表ベクトルとし て選択 2016/6/19 31
32.
KKZアルゴリズム •[Step1] 代表ベクトルの数が2個 ≠k個なのでアルゴリズ ムを続ける 2016/6/19 32
33.
KKZアルゴリズム •[Step2] それぞれのベクトル𝑥に 関して、最も近い代表 ベクトルの距離を求め る。 2016/6/19 33
34.
KKZアルゴリズム •[Step3] Step2で求めた距離が最 ⼤になるベクトルを新 たな代表ベクトルとし て選択 2016/6/19 34
35.
KKZアルゴリズム •[Step1] 代表ベクトルの数が3個 =k個なのでアルゴリズ ムを⽌める⇒終了 2016/6/19 35
36.
KKZの問題点 • KKZによって、最初に選んだ代表ベクトルをもとに各代表ベク トルの距離が最⼤になるように初期値を選択できた。 • 外れ値が存在する場合にうまくいかないことがある。。。 ⇒k-means++法の登場 2016/6/19
36
37.
k-means++法 • k-means++:KKZでは距離が最⼤になるものを選んでいたが、 距離が⼤きい物が確率的に選ばれやすいように して、ランダムに次の点を決める⽅法 • 次の代表ベクトルは確率的にランダムに選ぶので、外れ値にも 対応できる k-means++を使うと・・・ •
ほとんどのデータセットで誤差が減り、あるデータセットでは 誤差が1/1000にも減った • 収束までの速さが2倍に 2016/6/19 37
38.
k-means++法 アルゴリズム Step0 ・ランダムに1つベクトルを選び代表ベクトルとする Step1
・代表ベクトルの数がk個になったら終了 Step2 ・それぞれのベクトル𝑥に関して、そのベクトルに⼀番 近い代表ベクトルとの距離𝐷(𝑋)を求める。 Step3 ・各ベクトルxに関して重み付き確率分布𝜙 𝑥' = ) *+ ∑-) *- を⽤いて新たな代表ベクトルをランダムに選ぶ 2016/6/19 38 Finish
39.
さらなるk-meansの問題点 2016/6/19 39
40.
さらなるk-meansの問題点 • 右のような事例ではk-means ではうまくいかないようです。 • また、k-meansは予めkを⾃ 分で決める必要があるという こと 2016/6/19
40 ⽯井 健⼀郎, 上⽥ 修功, 前⽥ 英作, 村瀬 洋: わかりやすい パターン認識, オーム社 (1998)
41.
x-means • k-meansではあらかじめ分割するクラスタ数kを与える必要が あった。 →x-meansではK=2で再帰的にK-means法を実⾏していく。ク ラスタの分割前と分割後でBIC(ベイズ情報量規準)を⽐較し、 値が改善しなくなるまで分割を続ける まだ勉強中なので、今回は説明しません 2016/6/19 41
42.
おまけ Javadocのすゝめ 2016/6/19 42
43.
Javadocを書こう Javadoc:プログラムについての説明をソースコードに記述する仕 組み /** * ここにJavadocを書く * @アノテーション
〜〜〜〜 */ 2016/6/19 43 /* コメントとは違 う書き⽅ */
44.
Javadocを書こう • Javadoc何がいい? ソースコード内にソースコードの説明が記述できる (これだけじゃないですが・・・) •コメントと何が違うの? HTML形式のドキュメンテーションファイルを出⼒できる。 他にも… コンパイル時の警告の抑制,⾮推奨メソッドの警告表 ⽰,スレッドセーフかどうかなど様々なことを記述で きる。 2016/6/19
44
45.
Javadocを書こう 2016/6/19 45
46.
Javadocを書こう(アノテーション) 2016/6/19 46 • この他にもいろいろあります アノテーション
効果 @author コーディングした⼈の名前を⽰す @version プログラムのバージョンを記述する @param メソッドの引数についての説明 @return メソッドの返り値の説明 @throws メソッドが吐くエラーについての説明 (どんなときにどんなエラーが吐かれるか)
47.
Javadocを書こう 2016/6/19 47 このようなjavaファ イルからHTML形式 のドキュメントファ イルを作成する。
48.
Javadocを書こう • EclipseからHTML形式のJavadocを⽣成 • Project->Generate
Javadoc…->private,publicを選択->Finish 2016/6/19 48
49.
Javadocを書こう 2016/6/19 49 できた!!
50.
ご清聴ありがとうございました! 2016/6/19 50
51.
参考資料 • 【改訂版】Eclipseではじめるプログラミング(22):いまさら聞け ない「Javadoc」と「アノテーション」⼊⾨ • k-means法の様々な初期値設定によるクラスタリング結果の実験的 ⽐較(JSAI2011) •
クラスタリングの定番アルゴリズム「K-means法」をビジュアライ ズしてみた • 適切なクラスタ数を推定するX-means法 - kaisehのブログ 2016/6/19 51
52.
参考資料 • k-means++法 ‒
Wikipedia • k-means++|ぽんのブログ - アメーバブログ • クラスタリング (クラスター分析) • scikit-learn による最も基本的なクラスタリング分析 ‒ Qiita • ⾔語処理のための機械学習⼊⾨ (⾃然⾔語処理シリーズ) 2016/6/19 52
Télécharger maintenant