Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

はじパタLT2

4,383 views

Published on

Rで学ぶデータサイエンス 5 「パターン認識」
第2章 k-平均法

Published in: Technology
  • Be the first to comment

はじパタLT2

  1. 1. パターン認識 Rで学ぶデータサイエンス 第2章 2013/07/02 at リクルート(CodeIQ)
  2. 2. @kenchan0130_aki 学生ニート 働いたら負け 自然言語処理 得意になりたい言語:Ruby 自己紹介
  3. 3. @kenchan0130_aki 学生ニート 働いたら負け 自然言語処理 得意になりたい言語:Ruby 女の子と仲良くなれそう 自己紹介
  4. 4. @kenchan0130_aki 学生ニート 働いたら負け 自然言語処理 得意になりたい言語:Ruby 女の子と仲良くなれそう 自己紹介 とりあえずsinatraでwebアプリは作れるようになった
  5. 5. パターン認識 第2章 k-平均法 第1章 判別能力の評価 第3章 階層的クラスタリング 第4章 混合正規分布モデル 第5章 判別分析 第6章 ロジスティック回帰 第7章 密度推定 第8章 k-近傍法 第9章 学習ベクトル量子化 第10章 決定木 第11章 サポートベクターマシン 第12章 正規化とパス追跡 アルゴリズム 第13章 ミニマックス確率マシン 第14章 集団学習 第15章 2値判別から多値判別へ
  6. 6. パターン認識 第2章 k-平均法 第1章 判別能力の評価 第3章 階層的クラスタリング 第4章 混合正規分布モデル 第5章 判別分析 第6章 ロジスティック回帰 第7章 密度推定 第8章 k-近傍法 第9章 学習ベクトル量子化 第10章 決定木 第11章 サポートベクターマシン 第12章 正規化とパス追跡 アルゴリズム 第13章 ミニマックス確率マシン 第14章 集団学習 第15章 2値判別から多値判別へ
  7. 7. クラスタリングのお話 by : DGtal Plus Art & Photo
  8. 8. • データをいくつかの『まとまり』に分け, これをクラ スタと呼びます. クラスタリング
  9. 9. • データをいくつかの『まとまり』に分け, これをクラ スタと呼びます. • クラスタリングは, データのまとまり具合を捉えて, そこから何かしらの情報を引き出す方法です. クラスタリング
  10. 10. • クラスタリングを実行するときに以下の2つを決める 必要があります. クラスタリング
  11. 11. • クラスタリングを実行するときに以下の2つを決める 必要があります. クラスタリング 1) データ間の類似度をどう測るか? → 例えばユークリッド距離
  12. 12. • クラスタリングを実行するときに以下の2つを決める 必要があります. クラスタリング 1) データ間の類似度をどう測るか? → 例えばユークリッド距離 2) 何個のクラスタに分類するか? クラスタリングの結果からクラスタ数を調整して, 様々なパターンを 試行錯誤する必要も出てきます.
  13. 13. k-平均法のお話
  14. 14. • 俗にいう「k-means」のことです. k-平均法
  15. 15. • 俗にいう「k-means」のことです. • クラスタリング手法の一つとして広く使われてい ます. (巷では定番らしい) k-平均法
  16. 16. • 俗にいう「k-means」のことです. • クラスタリング手法の一つとして広く使われてい ます. (巷では定番らしい) • 割りと確からしい結果を返してきてくれます. k-平均法
  17. 17. • 俗にいう「k-means」のことです. • クラスタリング手法の一つとして広く使われてい ます. (巷では定番らしい) • 割りと確からしい結果を返してきてくれます. • 初期値の取り方で結果が変わります. k-平均法
  18. 18. k-平均法 k-meansのアルゴリズム
  19. 19. k-平均法 k-meansのアルゴリズム
  20. 20. • k-meansは, 評価関数 を最小化することで代表ベクト ルを求めています. k-平均法
  21. 21. • k-meansは, 評価関数 を最小化することで代表ベクト ルを求めています. k-平均法 • データに対応する代表ベクトルの間の距離の2乗和です. • クラスタの代表ベクトルの周りに, そのクラスタに属する データが集まっていれば, の値は小さくなります.
  22. 22. そんなこと言われてもワカンネ (しかも英語で書いてあるし...) by:hapal
  23. 23. k-平均法 試しにk=2でk-meansを行ってみましょう
  24. 24. 1 2 3 4 5 0.01.02.03.0 x y k-平均法 試しにk=2でk-meansを行ってみましょう
  25. 25. k-平均法 1 2 3 4 5 0.01.02.03.0 x y 試しにk=2でk-meansを行ってみましょう
  26. 26. k-平均法 1 2 3 4 5 0.01.02.03.0 x y 試しにk=2でk-meansを行ってみましょう
  27. 27. k-平均法 1 2 3 4 5 0.01.02.03.0 x y 試しにk=2でk-meansを行ってみましょう
  28. 28. 1 2 3 4 5 0.01.02.03.0 x y k-平均法 試しにk=2でk-meansを行ってみましょう
  29. 29. 1 2 3 4 5 0.01.02.03.0 x y k-平均法 試しにk=2でk-meansを行ってみましょう
  30. 30. 1 2 3 4 5 0.01.02.03.0 x y k-平均法 試しにk=2でk-meansを行ってみましょう
  31. 31. 1 2 3 4 5 0.01.02.03.0 x y k-平均法 試しにk=2でk-meansを行ってみましょう
  32. 32. 1 2 3 4 5 0.01.02.03.0 x y k-平均法 試しにk=2でk-meansを行ってみましょう
  33. 33. 1 2 3 4 5 0.01.02.03.0 x y k-平均法 試しにk=2でk-meansを行ってみましょう
  34. 34. 1 2 3 4 5 0.01.02.03.0 x y k-平均法 試しにk=2でk-meansを行ってみましょう
  35. 35. 1 2 3 4 5 0.01.02.03.0 x y k-平均法 試しにk=2でk-meansを行ってみましょう
  36. 36. k-平均法 試しにk=2でk-meansを行ってみましょう 1 2 3 4 5 0.01.02.03.0 x y
  37. 37. k-平均法 試しにk=2でk-meansを行ってみましょう 1 2 3 4 5 0.01.02.03.0 x y
  38. 38. k-平均法 試しにk=2でk-meansを行ってみましょう 1 2 3 4 5 0.01.02.03.0 x y こんな感じです。
  39. 39. で、codeはー? by : DGtal Plus Art & Photo
  40. 40. • みんな大好きirisデータ Rでの実装例
  41. 41. • みんな大好きirisデータ • Fisherの研究で使われた, あやめ150サンプルです. Rでの実装例
  42. 42. • みんな大好きirisデータ • Fisherの研究で使われた, あやめ150サンプルです. Rでの実装例 - Sepal.Length : がく片の長さ - Sepal.Width : がく片の幅 - Petal.Length : 花びらの長さ - Petal.Width : 花びらの幅 - Species : 品種(setosa, versicolor, viginica)
  43. 43. • みんな大好きirisデータ • Fisherの研究で使われた, あやめ150サンプルです. Rでの実装例 - Sepal.Length : がく片の長さ - Sepal.Width : がく片の幅 - Petal.Length : 花びらの長さ - Petal.Width : 花びらの幅 - Species : 品種(setosa, versicolor, viginica)
  44. 44. • statsパッケージ(デフォルトで入ってます)に 「kmeans」関数が用意されています. Rでの実装例
  45. 45. • statsパッケージ(デフォルトで入ってます)に 「kmeans」関数が用意されています. • nstartオプションは複数の初期値を試せるが, 増やすと その分計算時間がかかります. Rでの実装例
  46. 46. • statsパッケージ(デフォルトで入ってます)に 「kmeans」関数が用意されています. • nstartオプションは複数の初期値を試せるが, 増やすと その分計算時間がかかります. Rでの実装例
  47. 47. Rでの実装例 Sepal.Length 2.0 3.0 4.0 0.5 1.5 2.5 4.56.07.5 2.03.04.0 Sepal.Width Petal.Length 1357 4.5 6.0 7.5 0.51.52.5 1 3 5 7 Petal.Width k=3におけるk-meansによる, irisデータのクラスタリング
  48. 48. by :Kr. B. で、どうやって クラスタ数きめればいいの?
  49. 49. • 高次元のデータも視覚化すればクラスタ判断できるのでは? 次元削減による視覚化
  50. 50. • 高次元のデータも視覚化すればクラスタ判断できるのでは? • よく使われるのが, 皆さんご存知「主成分分析」です. 次元削減による視覚化
  51. 51. • 高次元のデータも視覚化すればクラスタ判断できるのでは? • よく使われるのが, 皆さんご存知「主成分分析」です. • ここでは, 主成分分析を非線形化した 『カーネル主成分分析』を使ってみます. 次元削減による視覚化
  52. 52. • 高次元のデータも視覚化すればクラスタ判断できるのでは? • よく使われるのが, 皆さんご存知「主成分分析」です. • ここでは, 主成分分析を非線形化した 『カーネル主成分分析』を使ってみます. • kernlabパッケージに「kpca」関数が用意されています. 次元削減による視覚化
  53. 53. • ガウスカーネルの の選び方は, データ間の距離の中 央値を とするとき, 付近の値を用いると 良い結果が得られるそうです. • 「pcv」関数で, 固有ベクトル空間へ射影した結果が得 られます. 次元削減による視覚化
  54. 54. 次元削減による視覚化 X1 -0.8 -0.4 0.0 0.4 -0.20.00.1 -0.8-0.40.00.4 X2 -0.2 0.0 0.1 -2 -1 0 1 2 -2-1012 X3 カーネル主成分分析の第3主成分までのプロット
  55. 55. 次元削減による視覚化 X1 -0.8 -0.4 0.0 0.4 -0.20.00.1 -0.8-0.40.00.4 X2 -0.2 0.0 0.1 -2 -1 0 1 2 -2-1012 X3 カーネル主成分分析の第3主成分までのプロット • 第1, 2主成分より, データが大 きく2つのクラスタに分かれて いることがわかります.
  56. 56. 次元削減による視覚化 X1 -0.8 -0.4 0.0 0.4 -0.20.00.1 -0.8-0.40.00.4 X2 -0.2 0.0 0.1 -2 -1 0 1 2 -2-1012 X3 カーネル主成分分析の第3主成分までのプロット • 第1, 2主成分より, データが大 きく2つのクラスタに分かれて いることがわかります. • 第2, 3主成分より, 3つくらいの クラスタに分かれそうであるこ とがわかります.
  57. 57. 次元削減による視覚化 X1 -0.8 -0.4 0.0 0.4 -0.20.00.1 -0.8-0.40.00.4 X2 -0.2 0.0 0.1 -2 -1 0 1 2 -2-1012 X3 カーネル主成分分析の第3主成分までのプロット PC1 -1.0 0.0 1.0 -3-113 -1.00.01.0 PC2 -3 -1 1 2 3 4 -0.5 0.0 0.5 -0.50.00.5 PC3 主成分分析の第3主成分までのプロット • 第1, 2主成分より, データが大 きく2つのクラスタに分かれて いることがわかります. • 第2, 3主成分より, 3つくらいの クラスタに分かれそうであるこ とがわかります.
  58. 58. 次元削減による視覚化 X1 -0.8 -0.4 0.0 0.4 -0.20.00.1 -0.8-0.40.00.4 X2 -0.2 0.0 0.1 -2 -1 0 1 2 -2-1012 X3 カーネル主成分分析の第3主成分までのプロット PC1 -1.0 0.0 1.0 -3-113 -1.00.01.0 PC2 -3 -1 1 2 3 4 -0.5 0.0 0.5 -0.50.00.5 PC3 主成分分析の第3主成分までのプロット • 第1, 2主成分より, データが大 きく2つのクラスタに分かれて いることがわかります. • 第2, 3主成分より, 3つくらいの クラスタに分かれそうであるこ とがわかります.
  59. 59. 次元削減による視覚化 X1 -0.8 -0.4 0.0 0.4 -0.20.00.1 -0.8-0.40.00.4 X2 -0.2 0.0 0.1 -2 -1 0 1 2 -2-1012 X3 カーネル主成分分析の第3主成分までのプロット PC1 -1.0 0.0 1.0 -3-113 -1.00.01.0 PC2 -3 -1 1 2 3 4 -0.5 0.0 0.5 -0.50.00.5 PC3 主成分分析の第3主成分までのプロット • 第1, 2主成分より, データが大 きく2つのクラスタに分かれて いることがわかります. • 第2, 3主成分より, 3つくらいの クラスタに分かれそうであるこ とがわかります. カーネル主成分分析の方は 特徴が捉えられています.
  60. 60. で、どうやって クラスタ数きめればいいの? by :chaysbc part2
  61. 61. クラスタ数の推定 • 主成分分析でも, ある程度のクラスタ数は予測できました.
  62. 62. クラスタ数の推定 • 主成分分析でも, ある程度のクラスタ数は予測できました. • データに適当な分布を仮定して, 情報量規準などで推定す るのもありです.
  63. 63. クラスタ数の推定 • 主成分分析でも, ある程度のクラスタ数は予測できました. • データに適当な分布を仮定して, 情報量規準などで推定す るのもありです. • 今回は, データに分布を仮定しない, ギャップ統計量を使い ます.
  64. 64. クラスタ数の推定 • 主成分分析でも, ある程度のクラスタ数は予測できました. • データに適当な分布を仮定して, 情報量規準などで推定す るのもありです. • 今回は, データに分布を仮定しない, ギャップ統計量を使い ます. • SLmiscパッケージに「kmeansGap」関数が用意されてい ます.
  65. 65. クラスタ数の推定 • 評価関数 は について単調に減少するので, を基準とす ると, 以下のようになります. • データ とほぼ同じ範囲の一様乱数から生成 されたデータ集合 とします. • クラスタ数を とするとき, データ と のそれぞれをク ラスタリングして得られる評価関数の値を とします. 最適なクラスタ数 = データ数
  66. 66. クラスタ数の推定 • ギャップ統計量は以下の式で求めることができます. • が最大となるような を推定値とする方法です.
  67. 67. クラスタ数の推定
  68. 68. クラスタ数の推定 0510152025 k : number of clusters frequency 2 3 4 5 6 7 8 9
  69. 69. まとめ • k-meansは, 事前にクラスタ数を と決めてクラスタリ ングを行う手法でした.
  70. 70. まとめ • k-meansは, 事前にクラスタ数を と決めてクラスタリ ングを行う手法でした. • クラスタ数によってやりたいようにできてしまいます.
  71. 71. まとめ • k-meansは, 事前にクラスタ数を と決めてクラスタリ ングを行う手法でした. • クラスタ数によってやりたいようにできてしまいます. • クラスタ数の決定が鍵となります.
  72. 72. まとめ • k-meansは, 事前にクラスタ数を と決めてクラスタリ ングを行う手法でした. • クラスタ数によってやりたいようにできてしまいます. • クラスタ数の決定が鍵となります. • クラスタに分けたあとのクラスタ毎の意味付け頑張って 下さい^^ (←これが一番大変だと思います. )
  73. 73. Have a nice clustering!!

×