Your SlideShare is downloading. ×
0
Tokyo.R#10 Rによるデータサイエンス 第五章:クラスター分析
自己紹介 <ul><li>本名 </li></ul><ul><ul><li>西島 寛 </li></ul></ul><ul><li>Twitter ID </li></ul><ul><ul><li>hnz </li></ul></ul><ul>...
Rとわたし <ul><li>大学で使っていました </li></ul><ul><ul><li>図書館情報学をやっていました </li></ul></ul><ul><ul><li>論文の共著や引用のネットワークの分析など </li></ul></...
アジェンダ <ul><li>クラスター分析って? </li></ul><ul><li>階層的クラスター分析 </li></ul><ul><li>非階層的クラスター分析 </li></ul><ul><li>モデルに基づいたクラスター分析 </li...
クラスター分析とは <ul><li>似ている物をまとめる手法 </li></ul><ul><ul><li>データの分類 </li></ul></ul><ul><li>学習データのあるクラスター分析(教師つき) </li></ul><ul><li...
階層的クラスタリング
分析の流れ <ul><li>データから距離や類似度を算出 </li></ul><ul><li>クラスター分析の方法を選択 </li></ul><ul><li>選択された方法のコーフェン行列を算出 </li></ul><ul><li>コーフェン行...
デンドログラム
デンドログラム クラスタが一つずつ併合され, 最終的に一つのクラスタにまとまる 階層的クラスタリング 併合されてゆく過程をグラフで表現したもの =デンドログラム
デンドログラム 併合されたクラスターの距離
コーフェン行列 <ul><li>クラスタ間の距離の行列 </li></ul><ul><ul><li>同じ数字の所は同じ高さで併合されたもの </li></ul></ul>階層的クラスタリングの手法はこの行列 の求め方の違い 1.1  1.1  ...
アルゴリズム <ul><li>以下のような5つのデータの階層的クラスタリングを考える </li></ul>C(1) C(2) C(3) C(4) C(5) (4.5,2) データ 5 (4,4) データ 4 (2,4) データ 3 (1,2) ...
STEP1 併合 <ul><li>クラスタ C(1)とC(2)が併合され,クラスタC(1,2)が作られる </li></ul>C(1) C(2) C(3) C(4) C(5) 初期のコーフェン行列は データ間の距離 2.06  3.20  3....
STEP2 コーフェン行列の更新 <ul><li>ここではクラスタ A,B の距離 D(A,B) として 以下の式を利用する </li></ul><ul><ul><li>クラスタ i とクラスタ j 間のすべてのデータ </li></ul></...
以下繰り返し… クラスタ  C(3) と C(4) が併合され,クラスタ C(3,4) が作られる C(1,2) C(3) C(4) C(5) 2.06  3.20  2.69  C(5)   2.00  3.61  C(4)     2.61...
以下繰り返し… クラスタ  C(3,4) と C(5) が併合され,クラスタ C(3,4,5) が作られる C(1,2) C(5) C(3,4) 2.63  3.09  C(5)   3.11  C(3,4) C(3,4) C(1 ,2 )  
以下繰り返し… クラスタ  C(1,2) と C(3,4,5) が併合され,クラスタ C(1,2,3,4,5) が作られる C(1,2) C(5) C(3,4) 3.10 C(3,4,5) C(1 , 2)  
クラスタ間の距離(1/4) <ul><li>最近隣法 </li></ul><ul><ul><li>クラスタ間の 最小 の距離を与えるデータ対を選び,その距離をクラスタ間の距離とする </li></ul></ul><ul><li>最遠隣法 </l...
クラスタ間の距離(2/4) <ul><li>群平均法 </li></ul><ul><ul><li>クラスタ i とクラスタ j 間のすべてのデータの組み合わせの距離の平均を使用 </li></ul></ul><ul><li>重心法 </li><...
クラスタ間の距離(3/4) <ul><li>メディアン法 </li></ul><ul><ul><li>クラスタ i と j の重心の中点からの距離 </li></ul></ul>i j k Cij
クラスタ間の距離(4/4) <ul><li>ウォード法 </li></ul><ul><ul><li>クラスタAとBを併合したときに,クラスタ内の平方和の増加分が最小のものを併合 </li></ul></ul><ul><ul><ul><li>クラ...
手法を選ぶ上での注意点 <ul><li>重心法/メディアン法/ウォード法は初期のコーフェン行列が ユークリッド距離の自乗 と定義されている…らしい </li></ul><ul><ul><li>新納浩幸「Rで学ぶクラスタ解析」に載っていた </l...
hclust  関数 <ul><li>d …  距離行列 </li></ul><ul><li>method … single,complete,average,centroid,median,ward, McQuitty  から選択 </li>...
hclust に関連する関数 <ul><li>summary </li></ul><ul><ul><li>結果のオブジェクトのリストを返す </li></ul></ul><ul><li>plot,plclust </li></ul><ul><u...
デンドログラムのできるまで  STEP 1/3 <ul><li>花弁の長さ </li></ul><ul><li>花弁の幅 </li></ul>
非階層的クラスター分析 <ul><li>階層的クラスタリングはデータ数が多いと計算が大変... </li></ul><ul><li>非階層的クラスター分析は大規模なデータセットに向く </li></ul><ul><li>代表的な手法として, k...
k-means のアルゴリズム <ul><li>前提:クラスタの数をKと決める </li></ul>K 個のクラスタの代表点      を適当に作成 STEP 1
k-means のアルゴリズム 各データ  X  とクラスタの代表点 との距離を測り 最も距離が近いクラスタを X のクラスタとする STEP  2
k-means のアルゴリズム 形成されたクラスターの中心を求める STEP 3
k-means のアルゴリズム クラスタの中心が変化しない時点まで STEP2,3 を 繰り返す STEP  2
kmeans 関数 <ul><li>x... 距離行列 </li></ul><ul><li>centers… クラスターの数,あるいはクラスターの中心 </li></ul><ul><li>iter.max… 繰り返しの最大数 </li></ul...
モデルに基づいたクラスター分析 <ul><li>観測データが異なる確率分布による混合分布  θ= ( μ , σ , α )であると仮定する </li></ul><ul><ul><li>3 つのパラメータを一度に推定するのはムリ </li></...
EMアルゴリズム 不完全データ  x どのクラスタ で発生したか がわからない 隠れ変数: c ( どのクラスタで発生したか)を付与 完全データ: y=(x,c) x  の分布の最適化問題を y の分布の最適化問題の 繰り返しに帰着させるアルゴ...
EMアルゴリズムの流れ θ :固定 c :  尤度最大 E-step θ :尤度最大 c :  固定 M-step c を推定! θ を推定! パラメータ θ と隠れ変数 c を交互に推定 -> 収束したときのパラメータを採用!
R で混合分布モデルを使うときの 3STEP <ul><li>[STEP1] </li></ul><ul><ul><li>mclust  パッケージの  EMclust  関数でクラスター数と使用する混合分布のモデルを推定 </li></ul>...
hc で選択できるモデル <ul><li>E </li></ul><ul><ul><li>一次元等分散 </li></ul></ul><ul><li>V </li></ul><ul><ul><li>一次元可変な分散 </li></ul></ul...
実行例 <ul><li>iris  データを使用 </li></ul><ul><li>階層的クラスタリング </li></ul><ul><ul><li>table(iris[,5],cutree(hclust(d=dist(iris[1:4],...
iris  データについて <ul><li>これらの花の花弁の長さらしい </li></ul>Iris setosa ( 檜扇菖蒲) Iris versicolor Iris virginica
Upcoming SlideShare
Loading in...5
×

Tokyo r#10 Rによるデータサイエンス 第五章:クラスター分析

9,282

Published on

Published in: Technology
0 Comments
8 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
9,282
On Slideshare
0
From Embeds
0
Number of Embeds
3
Actions
Shares
0
Downloads
70
Comments
0
Likes
8
Embeds 0
No embeds

No notes for slide

Transcript of "Tokyo r#10 Rによるデータサイエンス 第五章:クラスター分析"

  1. 1. Tokyo.R#10 Rによるデータサイエンス 第五章:クラスター分析
  2. 2. 自己紹介 <ul><li>本名 </li></ul><ul><ul><li>西島 寛 </li></ul></ul><ul><li>Twitter ID </li></ul><ul><ul><li>hnz </li></ul></ul><ul><li>現在:某社運用担当エンジニア 1 年目 </li></ul>
  3. 3. Rとわたし <ul><li>大学で使っていました </li></ul><ul><ul><li>図書館情報学をやっていました </li></ul></ul><ul><ul><li>論文の共著や引用のネットワークの分析など </li></ul></ul><ul><li>好きな CRAN モジュールは igraph </li></ul><ul><li>会社では R はつかってません... </li></ul>
  4. 4. アジェンダ <ul><li>クラスター分析って? </li></ul><ul><li>階層的クラスター分析 </li></ul><ul><li>非階層的クラスター分析 </li></ul><ul><li>モデルに基づいたクラスター分析 </li></ul><ul><li>各クラスタリングの比較( R でデモ) </li></ul>R によるデータサイエンス 第五章:クラスター分析 http://mjin.doshisha.ac.jp/R/28/28.html
  5. 5. クラスター分析とは <ul><li>似ている物をまとめる手法 </li></ul><ul><ul><li>データの分類 </li></ul></ul><ul><li>学習データのあるクラスター分析(教師つき) </li></ul><ul><li>学習データのないクラスター分析(教師なし) </li></ul>本章ではこっちを扱います
  6. 6. 階層的クラスタリング
  7. 7. 分析の流れ <ul><li>データから距離や類似度を算出 </li></ul><ul><li>クラスター分析の方法を選択 </li></ul><ul><li>選択された方法のコーフェン行列を算出 </li></ul><ul><li>コーフェン行列に基づき樹形図を作成 </li></ul><ul><li>結果を検討 </li></ul>
  8. 8. デンドログラム
  9. 9. デンドログラム クラスタが一つずつ併合され, 最終的に一つのクラスタにまとまる 階層的クラスタリング 併合されてゆく過程をグラフで表現したもの =デンドログラム
  10. 10. デンドログラム 併合されたクラスターの距離
  11. 11. コーフェン行列 <ul><li>クラスタ間の距離の行列 </li></ul><ul><ul><li>同じ数字の所は同じ高さで併合されたもの </li></ul></ul>階層的クラスタリングの手法はこの行列 の求め方の違い 1.1 1.1 1.1 0.1 setosa5 0.2 0.3 1.1 setosa4 0.3 1.1 setosa3 1.1 setosa2 setosa4 setosa3 setosa2 setosa1  
  12. 12. アルゴリズム <ul><li>以下のような5つのデータの階層的クラスタリングを考える </li></ul>C(1) C(2) C(3) C(4) C(5) (4.5,2) データ 5 (4,4) データ 4 (2,4) データ 3 (1,2) データ 2 (2,1) データ 1 座標 データ
  13. 13. STEP1 併合 <ul><li>クラスタ C(1)とC(2)が併合され,クラスタC(1,2)が作られる </li></ul>C(1) C(2) C(3) C(4) C(5) 初期のコーフェン行列は データ間の距離 2.06 3.20 3.50 2.69 C(5)   2.00 3.61 3.61 C(4)     2.24 3.00 C(3)       1.14 C(2) C(4) C(3) C(2) C(1)  
  14. 14. STEP2 コーフェン行列の更新 <ul><li>ここではクラスタ A,B の距離 D(A,B) として 以下の式を利用する </li></ul><ul><ul><li>クラスタ i とクラスタ j 間のすべてのデータ </li></ul></ul><ul><ul><li>の組み合わせの距離の平均を使用 (= 群平均法) </li></ul></ul>
  15. 15. 以下繰り返し… クラスタ C(3) と C(4) が併合され,クラスタ C(3,4) が作られる C(1,2) C(3) C(4) C(5) 2.06 3.20 2.69 C(5)   2.00 3.61 C(4)     2.61 C(3) C(4) C(3) C(1 ,2 )  
  16. 16. 以下繰り返し… クラスタ C(3,4) と C(5) が併合され,クラスタ C(3,4,5) が作られる C(1,2) C(5) C(3,4) 2.63 3.09 C(5)   3.11 C(3,4) C(3,4) C(1 ,2 )  
  17. 17. 以下繰り返し… クラスタ C(1,2) と C(3,4,5) が併合され,クラスタ C(1,2,3,4,5) が作られる C(1,2) C(5) C(3,4) 3.10 C(3,4,5) C(1 , 2)  
  18. 18. クラスタ間の距離(1/4) <ul><li>最近隣法 </li></ul><ul><ul><li>クラスタ間の 最小 の距離を与えるデータ対を選び,その距離をクラスタ間の距離とする </li></ul></ul><ul><li>最遠隣法 </li></ul><ul><ul><li>クラスタ間の 最大 の距離を与えるデータ対を選び,その距離をクラスタ間の距離とする </li></ul></ul>j i k j i k Cij Cij
  19. 19. クラスタ間の距離(2/4) <ul><li>群平均法 </li></ul><ul><ul><li>クラスタ i とクラスタ j 間のすべてのデータの組み合わせの距離の平均を使用 </li></ul></ul><ul><li>重心法 </li></ul><ul><ul><li>クラスターのそれぞれの重心(例えば平均ベクトル)間の距離を使用 </li></ul></ul>i i j k j k Cij Cij
  20. 20. クラスタ間の距離(3/4) <ul><li>メディアン法 </li></ul><ul><ul><li>クラスタ i と j の重心の中点からの距離 </li></ul></ul>i j k Cij
  21. 21. クラスタ間の距離(4/4) <ul><li>ウォード法 </li></ul><ul><ul><li>クラスタAとBを併合したときに,クラスタ内の平方和の増加分が最小のものを併合 </li></ul></ul><ul><ul><ul><li>クラスタ内の平方和の増加分 </li></ul></ul></ul>※ 平方和 : クラスタ X 内の各データ x に対して, クラスタ X の重心 center ( X ) との距離 d(x,center(X)) の自乗の和
  22. 22. 手法を選ぶ上での注意点 <ul><li>重心法/メディアン法/ウォード法は初期のコーフェン行列が ユークリッド距離の自乗 と定義されている…らしい </li></ul><ul><ul><li>新納浩幸「Rで学ぶクラスタ解析」に載っていた </li></ul></ul><ul><ul><li>なので,他の距離を使いたいときはこれらの手法は避けましょう </li></ul></ul>
  23. 23. hclust 関数 <ul><li>d … 距離行列 </li></ul><ul><li>method … single,complete,average,centroid,median,ward, McQuitty から選択 </li></ul>hclust(d, method = “complete”, …)
  24. 24. hclust に関連する関数 <ul><li>summary </li></ul><ul><ul><li>結果のオブジェクトのリストを返す </li></ul></ul><ul><li>plot,plclust </li></ul><ul><ul><li>樹形図を作成する </li></ul></ul><ul><li>cutree </li></ul><ul><ul><li>クラスター数を指定し,グループ分けする </li></ul></ul><ul><li>cophenetic </li></ul><ul><ul><li>コーフェン行列を返す </li></ul></ul>
  25. 25. デンドログラムのできるまで STEP 1/3 <ul><li>花弁の長さ </li></ul><ul><li>花弁の幅 </li></ul>
  26. 26. 非階層的クラスター分析 <ul><li>階層的クラスタリングはデータ数が多いと計算が大変... </li></ul><ul><li>非階層的クラスター分析は大規模なデータセットに向く </li></ul><ul><li>代表的な手法として, k-means 法( k 平均法) </li></ul>
  27. 27. k-means のアルゴリズム <ul><li>前提:クラスタの数をKと決める </li></ul>K 個のクラスタの代表点      を適当に作成 STEP 1
  28. 28. k-means のアルゴリズム 各データ X とクラスタの代表点 との距離を測り 最も距離が近いクラスタを X のクラスタとする STEP 2
  29. 29. k-means のアルゴリズム 形成されたクラスターの中心を求める STEP 3
  30. 30. k-means のアルゴリズム クラスタの中心が変化しない時点まで STEP2,3 を 繰り返す STEP 2
  31. 31. kmeans 関数 <ul><li>x... 距離行列 </li></ul><ul><li>centers… クラスターの数,あるいはクラスターの中心 </li></ul><ul><li>iter.max… 繰り返しの最大数 </li></ul><ul><li>nstart… 初期中心を何回繰り返して求めるか </li></ul><ul><ul><li>最も平方和が小さいものを初期中心として採用 </li></ul></ul><ul><li>algorithm…4 つから選べる.通常, Hartigan-Wong が良い </li></ul>kmeans(x, centers, iter.max=10,nstart=1, algorithm= c(&quot;Hartigan-Wong&quot;, &quot;Lloyd&quot;, &quot;Forgy&quot;, &quot;MacQueen&quot;))
  32. 32. モデルに基づいたクラスター分析 <ul><li>観測データが異なる確率分布による混合分布 θ= ( μ , σ , α )であると仮定する </li></ul><ul><ul><li>3 つのパラメータを一度に推定するのはムリ </li></ul></ul><ul><li>個体が属するラベル(=どのクラスタに属するか)を 隠れ変数 として推定する </li></ul><ul><ul><li>これが分かれば θ も推定できる </li></ul></ul><ul><li>どのような確率分布を仮定するかは任意 </li></ul><ul><ul><li>正規分布を拡張した楕円分布がよく用いられる </li></ul></ul>
  33. 33. EMアルゴリズム 不完全データ x どのクラスタ で発生したか がわからない 隠れ変数: c ( どのクラスタで発生したか)を付与 完全データ: y=(x,c) x の分布の最適化問題を y の分布の最適化問題の 繰り返しに帰着させるアルゴリズム EM アルゴリズム
  34. 34. EMアルゴリズムの流れ θ :固定 c : 尤度最大 E-step θ :尤度最大 c : 固定 M-step c を推定! θ を推定! パラメータ θ と隠れ変数 c を交互に推定 -> 収束したときのパラメータを採用!
  35. 35. R で混合分布モデルを使うときの 3STEP <ul><li>[STEP1] </li></ul><ul><ul><li>mclust パッケージの EMclust 関数でクラスター数と使用する混合分布のモデルを推定 </li></ul></ul><ul><ul><ul><li>BIC 値の大きいモデルとクラスター数を選択 </li></ul></ul></ul><ul><li>[STEP2] </li></ul><ul><ul><li>hc(modelName,data) 関数でクラスタリングを実行 </li></ul></ul><ul><li>[STEP3] </li></ul><ul><ul><li>hclass(hc の結果,クラスタ数 ) 関数で結果を取得 </li></ul></ul><ul><li>※ mclust パッケージ内に Mclust という関数もあります. </li></ul>
  36. 36. hc で選択できるモデル <ul><li>E </li></ul><ul><ul><li>一次元等分散 </li></ul></ul><ul><li>V </li></ul><ul><ul><li>一次元可変な分散 </li></ul></ul><ul><li>EII </li></ul><ul><ul><li>球形・等分散 </li></ul></ul><ul><li>VII </li></ul><ul><ul><li>球形・異なる体積 </li></ul></ul><ul><li>EEE </li></ul><ul><ul><li>楕円球形,等体積,形状,向き </li></ul></ul><ul><li>VVV </li></ul><ul><ul><li>楕円球形,異なる体積,形状,向き </li></ul></ul>
  37. 37. 実行例 <ul><li>iris データを使用 </li></ul><ul><li>階層的クラスタリング </li></ul><ul><ul><li>table(iris[,5],cutree(hclust(d=dist(iris[1:4],method=&quot;euclidian&quot;)**2,method=&quot;ward&quot;),3)) </li></ul></ul><ul><li>k-means </li></ul><ul><ul><li>table(iris[,5],kmeans(dist(iris[1:4],method=&quot;euclidian&quot;),centers=3)$cluster) </li></ul></ul><ul><li>混合分布モデル </li></ul><ul><ul><li>table(iris[,5],Mclust(iris[1:4],G=3,modelName=&quot;VVV&quot;)$classification) </li></ul></ul>
  38. 38. iris データについて <ul><li>これらの花の花弁の長さらしい </li></ul>Iris setosa ( 檜扇菖蒲) Iris versicolor Iris virginica
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.

×