O slideshow foi denunciado.
Utilizamos seu perfil e dados de atividades no LinkedIn para personalizar e exibir anúncios mais relevantes. Altere suas preferências de anúncios quando desejar.

はじパタLT2

4.425 visualizações

Publicada em

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

Publicada em: Tecnologia
  • Seja o primeiro a comentar

はじパタ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!!

×