Introduction to Mahout Clustering - #TokyoWebmining #6

23,524
-1

Published on

「第6回 データマイニング+WEB 勉強会@東京-ソーシャル・広告・最適化祭り-」の講師資料です(10/08/22) hamadakoichi 濱田晃一

Published in: Technology

Introduction to Mahout Clustering - #TokyoWebmining #6

  1. 1. 第6回データマイニング+WEB勉強会@東京 データマイニング 勉強会@ 勉強会 2010/08/22 Mahout クラスタリング入門 Introduction to Mahout Clustering hamadakoichi 濱田 晃一
  2. 2. AGENDA ◆自己紹介 ◆Mahoutとは ◆Clustering ◆Mahout Clustering ◆Mahout k-means ◆参考資料 ◆最後に
  3. 3. AGENDA ◆自己紹介 ◆Mahoutとは ◆Clustering ◆Mahout Clustering ◆Mahout k-means ◆参考資料 ◆最後に
  4. 4. hamadakoichi 濱田晃一 http://iddy.jp/profile/hamadakoichi 4
  5. 5. 自己紹介:hamadakoichi 濱田晃一 5
  6. 6. 自己紹介:hamadakoichi 濱田晃一 データマイニング+WEB勉強会@東京 主催者です 6
  7. 7. 自己紹介:hamadakoichi 濱田晃一 理論物理 博士(2004.3取得) 量子統計場の理論 Statistical Field Theory Spontaneously Time-Reversal Symmetry Breaking Anisotropic Massless Dirac Fermions 博士論文: http://hosi.phys.s.u-tokyo.ac.jp/~koichi/PhD-thesis.pdf 7
  8. 8. 自己紹介:hamadakoichi 濱田晃一 文部大臣に褒められた 元 文部大臣・法務大臣 六法全書著者・元法学政治学研究科長 森山眞弓さん 菅野和夫さん 8
  9. 9. 自己紹介:hamadakoichi 濱田晃一 Los Angelesでプロダンサーに褒められた ・HIP HOP/House ダンス歴13年 ・ダンス開始後 1年半でL.A.でプロダンサーに褒められる Youtube Channel: http://www.youtube.com/hamadakoichi 9
  10. 10. 自己紹介:hamadakoichi 濱田晃一 毎週末3時間ダンスコーチをしています ■過去、東京と京都でも ダンス部を創設。 コーチをしていました 駒場物理ダンス部 京都大学基礎物理学研究所ダンス部 部長兼コーチ 部長兼コーチ 現在: 毎週末 3時間ダンスコーチ Youtube Channel: http://www.youtube.com/hamadakoichi 10
  11. 11. 数理解析手法の実ビジネスへの適用 2004年 博士号取得後 数理解析手法を実ビジネス適用の方法論構築 主な領域 ◆活動の数理モデル化・解析手法 ◆活動の分析手法・再構築手法 ◆活動の実行制御・実績解析システム … 内容抜粋 “Decoupling Executions in Navigating Manufacturing "Unified graph representation of processes Processes for Shortening Lead Time and Its Implementation for scheduling with flexible resource to an Unmanned Machine Shop”, assignment", 11
  12. 12. 数理解析手法の実ビジネスへの適用:活動例 活動例 活動の統一グラフモデルを構築・解析 Unified graphical model of processes and resources 青字:割付モデル属性 [ ] : Optional Node ・priority(優先度) Edge ・duration(予定時間) [・earliest(再早開始日時) ] Process Edge Process [・deadline(納期) ] 前プロセスの終了後に後プロセスが プロセスを表す [・or(条件集約数) ] ・attributes(属性) 開始できること表す preemptable(中断可否), successive(引継ぎ可否) Uses Edge workload(作業負荷) Processが使用する uses uses uses uses uses uses Assign Region を表す Assign Region Assigns from Edge 同一Resourceを割付け続ける Assign Regionに assigns from assigns from 指定Resourceの子Resource集合の 範囲を表す assigns assigns 中から割付けることを示す 企業01 [process] has has [startDate(開始日時)] [endDate(終了日時)] Assigns Edge 製品01 組織A StartDateからEndDateまでの間 Resource has Assign RegionにResourceを 割付対象要素を表す has has has has has has 割付けることを表す ・capacity(容量) ・calender(カレンダー) AAA01 AAB02 … 山田さん 田中さん 鈴木さん ・attributes(属性) Has Edge Resourceの所有関係を表す 12 東さん
  13. 13. 数理解析手法の実ビジネスへの適用:活動例 一品一様の業務プロセスの 動的なプロセス制御数理体系を構築 全体生産リードタイム中央値を 1/2.7に短縮 設計開始~頭だし出荷リードタイム 体系適用 500 適用後 設計開始~頭だし 出荷C T 360.4h(15.0日) 400 1/2.7 300 200 100 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 141.6h(5.9日) 00 00 9: 9: 9: 9: 9: 9: 9: 9: 9: 9: 9: 9: 9: 9: 0 7 4 1 8 5 1 8 5 2 9 6 3 0 /2 /2 /0 /1 /1 /2 /0 /0 /1 /2 /2 /0 /1 /2 / 09 / 09 / 10 / 10 / 10 / 10 / 11 / 11 / 11 / 11 / 11 / 12 / 12 / 12 04 04 04 04 04 04 04 04 04 04 04 04 04 04 20 20 20 20 20 20 20 20 20 20 20 20 20 20 週集計開始日時 13
  14. 14. 数理解析手法の実ビジネスへの適用:活動例 ビジネスとともに 学術分野でも貢献 変動性から生じる動的な課題 ・リソースの競合 ・滞留 ・納期遅延 … 一品一様な業務プロセスを含む 統計解析・制御数理モデル ・統計的な有効変数算出 ・統計数理モデル化 -優先順位制御 -実行タイミング制御 -統計フィードバック -適正リソース量算出 ・予測数理体系 論文(体系の一部) M.Nakao, N. Kobayashi, K.Hamada, T.Totsuka, S.Yamada, “Decoupling Executions in Navigating Manufacturing Processes for Shortening Lead Time and Its Implementation to an Unmanned Machine Shop”, 14 CIRP Annals - Manufacturing Technology Volume 56, Issue 1, Pages 171-174 (2007)
  15. 15. 参加者 自己紹介Time (1分以内ずつ:計30分程度) 15
  16. 16. AGENDA ◆自己紹介 ◆Mahoutとは ◆Clustering ◆Mahout Clustering ◆Mahout k-means ◆参考資料 ◆最後に
  17. 17. Mahoutとは Open Sourceでスケーラブルな 機械学習・データマイニングのライブラリ ・Apache プロジェクト ・機械学習・データマイニングのライブラリ ・Java オープンソース ・Hadoop(大規模 分散処理基盤)上で動作 (Hadoop:象, Mahout: 象使い) http://mahout.apache.org 17
  18. 18. Mahoutとは Open Sourceでスケーラブルな 機械学習・データマイニングのライブラリ ・Apache プロジェクト ・機械学習・データマイニングのライブラリ ・Java オープンソース ・Hadoop(大規模 分散処理基盤)上で動作 (Hadoop:象, Mahout: 象使い) http://mahout.apache.org 18
  19. 19. Mahoutとは Open Sourceでスケーラブルな 機械学習・データマイニングのライブラリ ・Apache プロジェクト ・機械学習・データマイニングのライブラリ ・Java オープンソース ・Hadoop(大規模 分散処理基盤)上で動作 (Hadoop:象, Mahout: 象使い) http://mahout.apache.org 19
  20. 20. Mahoutとは Open Sourceでスケーラブルな 機械学習・データマイニングのライブラリ ・Apache プロジェクト ・機械学習・データマイニングのライブラリ ・Java オープンソース ・Hadoop(大規模 分散処理基盤)上で動作 (Hadoop:象, Mahout: 象使い) http://mahout.apache.org 20
  21. 21. Mahoutとは Open Sourceでスケーラブルな 機械学習・データマイニングのライブラリ ・Apache プロジェクト ・機械学習・データマイニングのライブラリ ・Java オープンソース ・Hadoop(大規模 分散処理基盤)上で動作 (Hadoop:象, Mahout: 象使い) http://mahout.apache.org 21
  22. 22. Mahoutとは Open Sourceでスケーラブルな 機械学習・データマイニングのライブラリ ・Apache プロジェクト ・機械学習・データマイニングのライブラリ ・Java オープンソース ・Hadoop(大規模 分散処理基盤)上で動作 ・Hadoop:象, Mahout: 象使い http://mahout.apache.org 22
  23. 23. Mahoutとは Open Sourceでスケーラブルな 機械学習・データマイニングのライブラリ ・Apache プロジェクト ・機械学習・データマイニングのライブラリ ・Java オープンソース ・Hadoop(大規模 分散処理基盤)上で動作 ・Hadoop:象, Mahout: 象使い http://mahout.apache.org 23
  24. 24. Mahoutとは Open Sourceでスケーラブルな 機械学習・データマイニングのライブラリ Applications Examples Freq. Genetic Pattern Classification Clustering Recommenders Mining Utilities Math Collections Apache Vectors/Matrices/ Lucene/Vectorizer (primitives) Hadoop SVD http://cwiki.apache.org/confluence/display/MAHOUT/Algorithms http://www.slideshare.net/gsingers/intro-to-apache-mahout 24
  25. 25. AGENDA ◆自己紹介 ◆Mahoutとは ◆Clustering ◆Mahout Clustering ◆Mahout k-means ◆参考資料 ◆最後に
  26. 26. Clusteringとは データを類似度に従い グループに分けること 26
  27. 27. Clusteringとは データを類似度に従い グループに分けること クラスタリングA 27
  28. 28. Clusteringとは データを類似度に従い グループに分けること クラスタリングA クラスタリングB 28
  29. 29. Clusteringとは データを類似度に従い グループに分けること クラスタリングA クラスタリングB 29
  30. 30. 活用例:マーケティングリサーチ マーケティングリサーチ データ 好きなお酒に関するアンケート 消費者クラスタ Clustering ユーザーベクトル 商品・メディア評価 Aさん Bさん Cさん チューハイ氷結 5 5 1 カロリ 4 5 1 196℃ 4 1 1 … カクテルパートナー 4 4 2 Slat 1 1 1 ほろよい 1 2 2 ウメッシュ 1 1 3 … 1 1 1 テレビ 1 1 5 参考: @bob3bob3 さん: ネット 5 1 1 「市場細分化とクラスター分析」(第3回データマイニング+WEB勉強会@東京) 「市場細分化とクラスター分析」(第3回データマイニング+WEB勉強会@東京) … … … … http://www.slideshare.net/bob3/cfakepathtokyo-webmining3-201004 http://www.slideshare.net/bob3/cfakepathtokyo- webmining3-
  31. 31. 活用例:マーケティングリサーチ マーケティングリサーチ 消費者のニーズを知り、ターゲティング・チャネル選定に活かす データ 好きなお酒に関するアンケート 消費者クラスタ ・苦いもの ・300円台 300円台 甘いもの Clustering 100円台 100円台 ユーザーベクトル 商品・メディア評価 Aさん Bさん Cさん ・甘いもの ・低カロリ チューハイ氷結 5 5 1 ・テレビ カロリ 4 5 1 196℃ 4 1 1 … カクテルパートナー 4 4 2 ・甘いもの ・塩味 Slat 1 1 1 ・低カロリ ・炭酸 ・ネット ・400円台 400円台 ほろよい 1 2 2 自社ターゲットで 新しい ウメッシュ 1 1 3 到達できていない ユーザーニーズの発見 … 1 1 1 ユーザー層の発見 テレビ 1 1 5 参考: @bob3bob3 さん: ネット 5 1 1 「市場細分化とクラスター分析」(第3回データマイニング+WEB勉強会@東京) 「市場細分化とクラスター分析」(第3回データマイニング+WEB勉強会@東京) … … … … http://www.slideshare.net/bob3/cfakepathtokyo-webmining3-201004 http://www.slideshare.net/bob3/cfakepathtokyo- webmining3-
  32. 32. 活用例:健診データ 健診データ データ 健診データ 受診者クラスタ Clustering ユーザーベクトル 健康特徴 Aさん Bさん Cさん 年齢 46 44 … BMI 25.6 20.1 血圧上 126 119 血圧下 77 70 中性脂肪 321 156 空腹時血糖値 95 98 LDL 130 123 GOT 23 27 GPT 41.5 38 参考:@dichika さん: 参考:@ 「健診データへのクラスタリング適用例」(第3回データマイニング+WEB勉強会@東京) 「健診データへのクラスタリング適用例」(第3回データマイニング+WEB勉強会@東京) yGTP 51.5 79 http://www.slideshare.net/guestbe53f7/kenshin … … …
  33. 33. 活用例:健診データ 健診データ 病人の特徴を知り、病気の予防に活かす データ 健診データ 受診者クラスタ Clustering メダボリック ユーザーベクトル シンドローム 健康特徴 Aさん Bさん Cさん 年齢 46 44 … メタボリック BMI 25.6 20.1 シンドローム予備軍 血圧上 126 119 ⇒減量指導する 血圧下 77 70 中性脂肪 321 156 空腹時血糖値 95 98 LDL 130 123 GOT 23 27 GPT 41.5 38 参考:@dichika さん: 参考:@ 「健診データへのクラスタリング適用例」(第3回データマイニング+WEB勉強会@東京) 「健診データへのクラスタリング適用例」(第3回データマイニング+WEB勉強会@東京) yGTP 51.5 79 http://www.slideshare.net/guestbe53f7/kenshin … … …
  34. 34. クラスタリング手法の種類 手法と帰属度の分類軸がある 分類 種類 内容 手法 階層的手法 ①各データそれぞれを一つのクラスタとする ②状態を初期状態とするクラスタの距離、類似度で2つのクラ スタを逐次的に併合していく ③目的のクラスタ数まで併合が行われたときに処理を終了す る 非階層的手法 ①データの良さを表す評価関数を設定する (分割最適化) ②評価関数に対する最適解(最適分割)を探索する 帰属度 ハードクラスタリ 各データは一つのクラスタのみに所属する ング ソフトクラスタリ 各データが複数のクラスタリングに所属することを許す ング (※最も帰属度が高いクラスタを抽出すると、ハードクラスタリ ングとなる) 34
  35. 35. クラスタリング手法の種類 手法と帰属度の分類軸がある 分類 種類 内容 手法 階層的手法 ①各データそれぞれを一つのクラスタとする ②状態を初期状態とするクラスタの距離、類似度で2つのクラ スタを逐次的に併合していく ③目的のクラスタ数まで併合が行われたときに処理を終了す る 非階層的手法 ①データの良さを表す評価関数を設定する (分割最適化) ②評価関数に対する最適解(最適分割)を探索する 帰属度 ハードクラスタリ 各データは一つのクラスタのみに所属する ング ソフトクラスタリ 各データが複数のクラスタリングに所属することを許す ング (※最も帰属度が高いクラスタを抽出すると、ハードクラスタリ ングとなる) 35
  36. 36. クラスタリング手法の種類 手法と帰属度の分類軸がある 分類 種類 内容 手法 階層的手法 ①各データそれぞれを一つのクラスタとする ②状態を初期状態とするクラスタの距離、類似度で2つのクラ スタを逐次的に併合していく ③目的のクラスタ数まで併合が行われたときに処理を終了す る 非階層的手法 ①データの良さを表す評価関数を設定する (分割最適化) ②評価関数に対する最適解(最適分割)を探索する 帰属度 ハードクラスタリ 各データは一つのクラスタのみに所属する ング ソフトクラスタリ 各データが複数のクラスタリングに所属することを許す ング (※最も帰属度が高いクラスタを抽出すると、ハードクラスタリ ングとなる) 36
  37. 37. クラスタリング手法の種類 クラスタリング手法 種類 ハード ソフト 階層的 ・Group Average method ・Single Linkage Method ・Complete Linkage Method ・Ward Method ・Centroid Method ・Median Method 非階層的 ・k-means ・Fuzzy k-means ・Canopy ・Gaussian Discriminative Analysis ・Mean-Shift ・Dirichlet Processing ・Spectral Clustering 37
  38. 38. クラスタリング手法の種類 クラスタリング手法 種類 ハード ソフト 階層的 ・Group Average method ・Single Linkage Method ・Complete Linkage Method ・Ward Method ・Centroid Method ・Median Method 非階層的 ・k-means ・Fuzzy k-means ・Canopy ・Gaussian Discriminative Analysis ・Mean-Shift ・Dirichlet Processing ・Spectral Clustering 38
  39. 39. クラスタリング手法の種類 クラスタリング手法 種類 ハード ソフト 階層的 ・Group Average method ・Single Linkage Method ・Complete Linkage Method ・Ward Method ・Centroid Method ・Median Method 非階層的 ・k-means ・Fuzzy k-means ・Canopy ・Gaussian Discriminative Analysis ・Mean-Shift ・Dirichlet Processing ・Spectral Clustering 39
  40. 40. クラスタリング手法の種類 クラスタリング手法 種類 ハード ソフト 階層的 ・Group Average method ・Single Linkage Method ・Complete Linkage Method ・Ward Method ・Centroid Method ・Median Method 非階層的 ・k-means ・Fuzzy k-means ・Canopy ・Gaussian Discriminative Analysis ・Mean-Shift ・Dirichlet Processing ・Spectral Clustering 40
  41. 41. クラスタリング手法の種類 Mahout Clustering 実装 種類 ハード ソフト 階層的 ・Group Average method ・Single Linkage Method ・Complete Linkage Method ・Ward Method ・Centroid Method ・Median Method 非階層的 ・k-means ・Fuzzy k-means ・Canopy ・Gaussian Discriminative Analysis ・Mean-Shift ・Dirichlet Processing ・Spectral Clustering 41
  42. 42. AGENDA ◆自己紹介 ◆Mahoutとは ◆Clustering ◆Mahout Clustering ◆Mahout k-means ◆参考資料 ◆最後に
  43. 43. Mahout Clustering Mahout Clustering 種類 ハード ソフト 階層的 ・Group Average method ・Single Linkage Method ・Complete Linkage Method ・Ward Method ・Centroid Method ・Median Method 非階層的 ・k-means ・Fuzzy k-means ・Canopy ・Gaussian Discriminative Analysis ・Mean-Shift ・Dirichlet Processing ・Spectral Clustering 43
  44. 44. Mahout Clustering Mahout Clustering クラスタリング手法 特徴 k-means Clustering クラスタをクラスタ数個の代表値で特徴づけクラ スタリング: 非階層的手法で最も代表的な手法。現実のクラス タリングでも使われることが多く、実用的な手法。 Fuzzy k-means K-meansで各要素が複数クラスタに帰属する形に 拡張: 距離に帰属度を掛け合わせクラスタ評価。 Gaussian Discriminative Analysis, 確率モデルでのクラスタリング: Dirichlet Processing Clustering 観測データが異なる確率分布(ガウス分布/ディリ クレ分布)の混合分布であると仮定。個体が属する クラスを隠れ変数を推定する。データの発生メカ ニズムが確率モデルでうまくモデル化できるとき、 強力な手法。 Canopy 指定距離の範囲[D1, D2]内のデータ点セットを抽 出する:K-meansの初期重心算出で用いられる。 Mean Shift 密度増加が最大半径で各クラスタ算出:指定距離 範囲でクラスタリング半径を順次増やしていく。 Spectral Clustering (Eigencut) 類似度グラフの分割によるクラスタリング 44
  45. 45. Mahout Clustering Mahout Clustering クラスタリング手法 特徴 k-means Clustering クラスタをクラスタ数個の代表値で特徴づけクラ スタリング: 非階層的手法で最も代表的な手法。現実のクラス タリングでも使われることが多く、実用的な手法。 Fuzzy k-means K-meansで各要素が複数クラスタに帰属する形に 拡張: 距離に帰属度を掛け合わせクラスタ評価。 Gaussian Discriminative Analysis, 確率モデルでのクラスタリング: Dirichlet Processing Clustering 観測データが異なる確率分布(ガウス分布/ディリ クレ分布)の混合分布であると仮定。個体が属する クラスを隠れ変数を推定する。データの発生メカ ニズムが確率モデルでうまくモデル化できるとき、 強力な手法。 Canopy 指定距離の範囲[D1, D2]内のデータ点セットを抽 出する:K-meansの初期重心算出で用いられる。 Mean Shift 密度増加が最大半径で各クラスタ算出:指定距離 範囲でクラスタリング半径を順次増やしていく。 Spectral Clustering (Eigencut) 類似度グラフの分割によるクラスタリング 45
  46. 46. AGENDA ◆自己紹介 ◆Mahoutとは ◆Clustering ◆Mahout Clustering ◆Mahout k-means ◆参考資料 ◆最後に
  47. 47. k-means アルゴリズム
  48. 48. k-means: 最も単純なアルゴリズム (E.W. Forgy 1965) ①データセットの中からK個のクラスタの 代表点 c1,c2,…,cKをランダムに選ぶ 例) データ数 N=5,クラスタ数 K=2 3 4 c2 × c1 2 5 1× 48
  49. 49. k-means: 最も単純なアルゴリズム (E.W. Forgy 1965) ①データセットの中からK個のクラスタの 代表点 c1,c2,…,cKをランダムに選ぶ ②各データ x に対し、 ciとの距離を測り 最も距離の短い ci に対するに対する クラスタを xのクラスタに設定する 評価関数(最小化問題) 例) データ数 N=5,クラスタ数 K=2 3 3 3 4 4 c2 4 c2 c2 × × × c1 c1 c1 × 2 5 2 5 2 5 1× 1× 1 49
  50. 50. k-means: 最も単純なアルゴリズム (E.W. Forgy 1965) ①データセットの中からK個のクラスタの 代表点 c1,c2,…,cKをランダムに選ぶ ②各データ x に対し、 ciとの距離を測り ③各クラスタの平均値(重心)を 最も距離の短い ci に対するに対する クラスタの代表点とする。 クラスタを xのクラスタに設定する (K個の平均値がクラスタを代表) ※各データ x のクラスタが変化しなくなるまで繰り返す 評価関数(最小化問題) 例) データ数 N=5,クラスタ数 K=2 3 3 3 3 4 4 c2 4 c2 4 c2 c2 × × × × c1 c1 c1 c1 × × 2 5 2 5 2 5 2 5 1× 1× 1 1 50
  51. 51. Mahout K-means の実行手順 K-meansジョブの データのVectorクラスのリスト作成 実行 ファイル書き出し 出力結果の読み込み 初期のクラスタ重心のリスト作成 ファイル書き出し 51
  52. 52. Mahout K-means の実行手順 実際の実装法を見ていきましょう (ソースコード抜粋) ■全ソースコードは以下の場所に公開しています [mahout] Mahout Programming : K-Means Clustering http://d.hatena.ne.jp/hamadakoichi/20100718/p1 ■Mahout導入手順 [mahout] Mahout 導入手順 http://d.hatena.ne.jp/hamadakoichi/20100703/p2 52
  53. 53. Mahout K-means の実行手順 データ表現: org.apache.mahout.math Interface 内容 Vector データ点表現のインターフェース Class 内容 DenseVector Vector のdoubleの配列での実装 K-means実行: org.apache.mahout.clustering.kmeans.KMeansDriver Class 内容 Cluster クラスタを表現 KMeansDriver K-meansジョブを実行する 距離算出法 指定: org.apache.mahout.common.distance Interface 内容 DistanceMeasure 2点間の距離算出法のインターフェース Class 内容 CosineDistanceMeasure コサイン距離での実装 EuclideanDistanceMeasure ユークリッド距離での実装 … 他距離 (Manhattan, SquareEuclidean, ..etc) 53
  54. 54. Mahout K-means の実行手順 K-meansジョブの データのVectorクラスのリスト作成 実行 ファイル書き出し 出力結果の読み込み 初期のクラスタ重心のリスト作成 ファイル書き出し 54
  55. 55. Mahout K-means の実行手順 K-meansジョブの データのVectorクラスのリスト作成 実行 ファイル書き出し 出力結果の読み込み 初期のクラスタ重心のリスト作成 ファイル書き出し 55
  56. 56. Mahout K-means の実行手順 1.入力データから Vectorクラスのリストを作成 ファイル書き出し データ点のVectorクラスのリスト作成 サンプルデータ iris(アヤメ)データ:よい性質を持ち よく使用される (R環境で標準提供されている) 花葉 花びら Iris Sanguinea 56
  57. 57. Mahout K-means の実行手順 1.入力データから Vectorクラスのリストを作成 ファイル書き出し データ点のVectorクラスのリスト作成 ファイル書き出し 57
  58. 58. Mahout K-means の実行手順 K-meansジョブの データのVectorクラスのリスト作成 実行 ファイル書き出し 出力結果の読み込み 初期のクラスタ重心のリスト作成 ファイル書き出し 58
  59. 59. Mahout K-means の実行手順 2.初期クラスタの作成 ファイル書き出し 初期クラスタのClusterクラス作成(Vectorデータ点を指定) ファイル書き出し 59
  60. 60. Mahout K-means の実行手順 K-meansジョブの データのVectorクラスのリスト作成 実行 ファイル書き出し 出力結果の読み込み 初期のクラスタ重心のリスト作成 ファイル書き出し 60
  61. 61. Mahout K-means の実行手順 3.K-meansの実行 K-meansのパラメータを指定し実行する runJob(java.lang.String input, java.lang.String clustersIn, java.lang.String output, Java.lang.String measureClass, double convergenceDelta, int maxIterations, int numReduceTasks) input – 入力データのディレクトリパス名 clustersIn – 初期クラスタのディレクトリ名 output – 出力データのディレクトリパス名 measureClass – 距離クラス convergenceDelta - 収束閾値 maxIterations – 最大繰り返し数 numReduceTasks – reducer数 61
  62. 62. Mahout K-means の実行手順 K-meansジョブの データのVectorクラスのリスト作成 実行 ファイル書き出し 出力結果の読み込み 初期のクラスタ重心のリスト作成 ファイル書き出し 62
  63. 63. Mahout K-means の実行手順 4.出力結果の読み込み クラスタリング結果(クラスタID)の読み込み 結果形式 key Value データ点(Vector)のkey ClusterId 63
  64. 64. Mahout K-means の実行手順 試しに クラスタリング結果(クラスタID)を見てみる 結果の読み込み・コンソール出力 結果 64
  65. 65. Mahout K-means の実行手順 K-meansジョブの データのVectorクラスのリスト作成 実行 ファイル書き出し 出力結果の読み込み 初期のクラスタ重心のリスト作成 ファイル書き出し 65
  66. 66. AGENDA ◆自己紹介 ◆Mahoutとは ◆Clustering ◆Mahout Clustering ◆Mahout k-means ◆参考資料 ◆最後に
  67. 67. 参考資料:クラスター分析 http://www.slideshare.net/hamadakoichi/webr-r http://www.slideshare.net/hamadakoichi/r-3754836 http://www.slideshare.net/bob3/cfakepathtokyo-webmining3-201004 http://www.slideshare.net/guestbe53f7/kenshin
  68. 68. 参考資料:Mahout/Hadoop/Recommendation http://www.slideshare.net/karubi/web-mining-0620 http://www.slideshare.net/yanaoki/hadoop-4683332 http://www.slideshare.net/hamadakoichi/ss-4552939 http://www.slideshare.net/hamadakoichi/ss-4113135
  69. 69. 参考資料: ■ Apach Mahout http://mahout.apache.org http://cwiki.apache.org/MAHOUT http://cwiki.apache.org/confluence/display/MAHOUT/Algorithms http://www.slideshare.net/gsingers/intro-to-apache-mahout ■ Mahout In Action (Manning Early Access Edition) http://www.manning.com/owen/ 69
  70. 70. 参考資料: 集合知イン・アクション 集合知プログラミング 70
  71. 71. AGENDA ◆自己紹介 ◆Mahoutとは ◆Clustering ◆Mahout Clustering ◆Mahout k-means ◆参考資料 ◆最後に
  72. 72. 最後に 蓄積されたデータを有効活用してきたい 72
  73. 73. 最後に 蓄積されたデータを有効活用してきたい Google Group: http://groups.google.com/group/webmining-tokyo 73
  74. 74. 最後に データマイニング+WEB勉強会 発表者を募集しています 連絡 Google Group: http://groups.google.com/group/webmining-tokyo Twitter : http://twitter.com/hamadakoichi 74
  75. 75. ご清聴ありがとうございました 75
  76. 76. AGENDA ◆自己紹介 ◆Mahoutとは ◆Clustering ◆Mahout Clustering ◆Mahout k-means ◆参考資料 ◆最後に
  77. 77. 補足資料
  78. 78. 階層的手法:アルゴリズム ①各データが自身をクラスターと考え データ数のクラスターを作る ②クラスタ間の距離を測り クラスタ間の距離行列を作成する ③最も距離の近いクラスタを併合する ④クラスタ間の距離行列を作成する ⑤最も短い距離のクラスタを併合する ※ひとつのクラスタになるまで繰り返し 78
  79. 79. 階層的手法:手法とクラスタ間距離 各手法のクラスタ間距離 クラスタリング手法 クラスタ間距離 群平均法 クラスタ間の全てのデータ組合せの距離の平均値 (Group Average method ) 単連結法 クラスタ間の最小距離を与えるデータ対の距離 (Single Linkage Method ) 完全連結法 クラスタの最大距離を与えるデータ対の距離 (Complete Linkage Method) ウォード法 クラスタ内の平方和の増加分 (Ward Method) 重心法 クラスタの重心間の距離の自乗 (Centroid Method) メディアン法 重心法と同じ。クラスタ併合時に、新たな重心を元の (Median Method) 重心の中点にとる。 79

×