• Share
  • Email
  • Embed
  • Like
  • Save
  • Private Content
「R言語による Random Forest 徹底入門 -集団学習による分類・予測-」 - #TokyoR  #11
 

「R言語による Random Forest 徹底入門 -集団学習による分類・予測-」 - #TokyoR #11

on

  • 19,208 views

「R言語による Random Forest 徹底入門 -集団学習による分類・予測-」 - #TokyoR #11

「R言語による Random Forest 徹底入門 -集団学習による分類・予測-」 - #TokyoR #11

Statistics

Views

Total Views
19,208
Views on SlideShare
14,384
Embed Views
4,824

Actions

Likes
35
Downloads
0
Comments
0

13 Embeds 4,824

http://d.hatena.ne.jp 4663
https://twitter.com 83
http://webcache.googleusercontent.com 21
http://paper.li 10
http://translate.googleusercontent.com 8
http://chinneng.hatenablog.com 8
https://si0.twimg.com 8
http://a0.twimg.com 7
http://s.deeeki.com 6
http://twitter.com 5
http://hmiya.info 3
http://static.slidesharecdn.com 1
https://www.linkedin.com 1
More...

Accessibility

Categories

Upload Details

Uploaded via as Adobe PDF

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

    「R言語による Random Forest 徹底入門 -集団学習による分類・予測-」 - #TokyoR  #11 「R言語による Random Forest 徹底入門 -集団学習による分類・予測-」 - #TokyoR #11 Presentation Transcript

    • Tokyo.R #11 2011/1/29 R言語によるRandom Forest 徹底入門 -集団学習による分類・予測- hamadakoichi 濱田 晃一
    • AGENDA ◆講師紹介 ◆Random Forestとは ◆決定木 ◆決定木とは ◆R言語での実行 ◆集団学習 ◆Random Forest ◆アルゴリズム ◆R言語での実行 ◆参考資料 ◆最後に
    • AGENDA ◆講師紹介 ◆Random Forestとは ◆決定木 ◆決定木とは ◆R言語での実行 ◆集団学習 ◆Random Forest ◆アルゴリズム ◆R言語での実行 ◆参考資料 ◆最後に
    • hamadakoichi 濱田晃一http://iddy.jp/profile/hamadakoichi 4
    • 資料 各種講師資料を公開しています http://www.slideshare.net/hamadakoichi
    • データマイニング+WEB勉強会@東京 データマイニング+WEB勉強会@東京 主催者です ぜひご参加下さい Google Group: http://groups.google.com/group/webmining-tokyo 6
    • データマイニング+WEB勉強会@東京 たくさんの会場参加、UST参加、Bookmark ありがとうございます 開催内容まとめ http://d.hatena.ne.jp/hamadakoichi/ 7
    • 3つの進行方針 充分な時間を充て 理解・議論を優先する 1.充分な時間: 各テーマごとにしっかり時間を充てる (浅く多くではなく、少ないテーマでも深く) 2.理解: 進行を急がない。分からないところはすぐ質問。 講師・各メンバーからの返答で、みなで理解を深めることを優先する。 3.議論: 議論時間をしっかりとる。 各分野の意見の共有、皆での発想・創造を優先する。 全員でのフラットな議論。講師にとっても有意義な場となるようにする。 8
    • 活動領域 9 9
    • 活動領域 ソーシャルメディアのデータマイニング活用 2000万人以上の人々へ 各人のつながり・楽しみ・好み 個性にあった適切なサービス提供 Social Media Social Graph Fun Like Personality Objective Process Data Mining Machine Learning 各人のつながり、楽しみ、好み、個性にあった より適切なサービス提供
    • 活動領域 活動が紹介されました 11
    • 活動領域 活動が紹介されました Tech総研 12 (※記事から抜粋)
    • hamadakoichi 濱田晃一 13
    • 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 14
    • hamadakoichi 濱田晃一 文部大臣に褒められた 元 文部大臣・法務大臣 六法全書著者・元法学政治学研究科長 森山眞弓さん 菅野和夫さん 15
    • hamadakoichi 濱田晃一 Los Angelesでプロダンサーに褒められた ・HIP HOP/House ダンス歴13年 ・ダンス開始後 1年半でL.A.でプロダンサーに褒められる Youtube Channel: http://www.youtube.com/hamadakoichi 16
    • hamadakoichi 濱田晃一 毎週末3時間ダンスコーチをしています ■過去、東京と京都でも ダンス部を創設。 コーチをしていました 駒場物理ダンス部 京都大学基礎物理学研究所ダンス部 部長兼コーチ 部長兼コーチ 現在: 毎週末 3時間ダンスコーチ Youtube Channel: http://www.youtube.com/hamadakoichi 17
    • 数理解析手法の実ビジネスへの適用 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", 18
    • 数理解析手法の実ビジネスへの適用:活動例 活動例 活動の統一グラフモデルを構築・解析 Unified graphical model of processes and resources 青字:割付モデル属性 [ ] : OptionalNode ・priority(優先度) Edge ・duration(予定時間) [・earliest(再早開始日時) ] Process EdgeProcess [・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の所有関係を表す 19
    • 数理解析手法の実ビジネスへの適用:活動例 一品一様の業務プロセスの 動的なプロセス制御数理体系を構築 全体生産リードタイム中央値を 1/2.7に短縮 設計開始~頭だし出荷リードタイム 体系適用 設計開始~頭だし出荷CT対週集計開始日時の箱ひげ図 500 適用後 設計開始~頭だし出荷CT 400 360.4h(15.0日) 1/2.7 300 200 100 0 0 0 0 0 0 0 0 0 0 0 0 141.6h(5.9日) 0 0 9: 0 9 :0 9:0 9:0 9: 0 9 :0 9:0 9:0 9: 0 9 :0 9 :0 9:0 9: 0 9 :0 0 7 4 1 8 5 1 8 5 2 9 6 3 0 /2 /2 /0 /1 /1 /2 1/0 /0 /1 /2 1/2 /0 /1 /2 09 /09 /10 1 0 /1 0 / 1 0 1 1 1 /1 1 / 1 1 1 1 2 / 12 / 1 2 4/ 4 4 4/ 4 4 4/ 4/ 4 4 4/ 4/ 4 4 2 0 0 2 00 2 00 200 200 200 2 00 200 200 200 2 00 200 200 200 週集計開始日時 20
    • 数理解析手法の実ビジネスへの適用:活動例 ビジネスとともに 学術分野でも貢献変動性から生じる動的な課題 ・リソースの競合 ・滞留 ・納期遅延 …一品一様な業務プロセスを含む統計解析・制御数理モデル ・統計的な有効変数算出 ・統計数理モデル化 -優先順位制御 -実行タイミング制御 -統計フィードバック -適正リソース量算出 ・予測数理体系論文(体系の一部)M.Nakao, N. Kobayashi, K.Hamada, T.Totsuka, S.Yamada,“Decoupling Executions in Navigating Manufacturing Processes for Shortening Lead Time and Its Implementationto an Unmanned Machine Shop”,CIRP Annals - Manufacturing Technology Volume 56, Issue 1, Pages 171-174 (2007) 21
    • 思い より広く蓄積されたデータを有効活用し 世界の未来をよりよいものにしていきたい データマイニング+WEB勉強会@東京 Google Group: http://groups.google.com/group/webmining-tokyo 22
    • 現在の活動領域 ソーシャルメディアのデータマイニング活用 2000万人以上の人々へ 各人のつながり・楽しみ・好み 個性にあった適切なサービス配信 日々20億以上の活動の活用 Social Media Social Graph Fun Like Personality Objective Process Data Mining Machine Learning 各人のつながり、楽しみ、好み、個性にあった より適切なサービス提供 23
    • よりよい世界の実現 ソーシャル・活動情報の活用により より適切な情報・サービス配信される世界を実現したい Social Media Social Graph Fun Like Personality Objective Process Data Mining Machine Learning 各人のつながり、楽しみ、好み、個性にあった より適切なサービス提供 24
    • よりよい世界の実現 ソーシャル・活動情報の活用により より適切な情報・サービス配信される世界を実現したい 世界中の人々が 個々人のつながり・楽しみ・好みにあった適切な情報・サービスを 自ら探さなくても得ることができる世界 Social Media Social Graph Fun Like Personality Objective Process Data Mining Machine Learning 各人のつながり、楽しみ、好み、個性にあった より適切なサービス提供 25
    • 思うこと 26
    • 思うこと 蓄積されたデータを有効活用し 世界の未来をよりよいものにしていきたい データマイニング+WEB勉強会@東京 Google Group: http://groups.google.com/group/webmining-tokyo 27
    • 思うこと 統計解析・データマイニング・機械学習、重要 データマイニング+WEB勉強会@東京 Google Group: http://groups.google.com/group/webmining-tokyo 28
    • 思うこと 統計解析・データマイニング・機械学習、重要 R言語使い 重要 データマイニング+WEB勉強会@東京 Google Group: http://groups.google.com/group/webmining-tokyo 29
    • 課題意識 30
    • 課題意識 R言語人材が そのスキルを十分に活かし 活躍できる場が提供されているか? 31
    • 調査結果 早速 R言語での人材募集要項を検索してみた 「R言語 募集要項」 32
    • 調査結果 早速 R言語での人材募集要項を検索してみた 「R言語 募集要項」 SASやSPSS使いは人材募集がある
    • 調査結果 早速 R言語での人材募集要項を検索してみた 「R言語 募集要項」 SASやSPSS使いは人材募集がある R言語の人材募集は見つからなかった。。。 (※海外ではFacebook等、募集)
    • 調査結果 早速 R言語での人材募集要項を検索してみた 「R言語 募集要項」 SASやSPSS使いは人材募集がある R言語の人材募集は見つからなかった。。。 (※海外ではFacebook等、募集) (2011/01/27までは) 35
    • 2011/01/28 新たな変化 36
    • 新たな変化 検索してみると 37
    • 新たな変化 発見! 38
    • 新たな変化 日本初 R言語の人材募集要項 http://www.dena.jp/recruit/sp2/career/guide09.html R言語人材の活躍の場 39
    • 思い 40
    • 思い R言語 人材募集を作った思い 41
    • 思い R言語 人材募集を作った思い 統計解析・データマイニング・機械学習 R言語・R人材の活用・活躍の場を広げたい 42
    • 思い R言語 人材募集を作った思い 統計解析・データマイニング・機械学習 R言語・R人材の活用・活躍の場を広げたい ソーシャル業界全体や、他業界の追従も歓迎 43
    • 思い R言語 人材募集を作った思い 統計解析・データマイニング・機械学習 R言語・R人材の活用・活躍の場を広げたい ソーシャル業界全体や、他業界の追従も歓迎 より広く、蓄積されたデータを有効活用し世界中のサービスが継続的進化される世界を実現したい 44
    • 思い R言語 人材募集を作った思い 統計解析・データマイニング・機械学習 R言語・R人材の活用・活躍の場を広げたい ソーシャル業界全体や、他業界の追従も歓迎 より広く、蓄積されたデータを有効活用し世界中のサービスが継続的進化される世界を実現したい ※もちろん、個人としては 一緒に活動し実現できたら嬉しい 45
    • よりよい世界の実現 より蓄積されたデータを有効活用し 世界の未来をよりよいものにしていきたい データマイニング+WEB勉強会@東京 Google Group: http://groups.google.com/group/webmining-tokyo 46
    • よりよい世界の実現 よりよい世界を実現したい 一緒に実現する仲間を募集しています 47
    • よりよい世界の実現 よりよい世界を実現したい 一緒に実現する仲間を募集しています 48
    • よりよい世界の実現 よりよい世界を実現したい 一緒に実現する仲間を募集しています 大規模ソーシャルメディアのデータマイニング (2100万会員 1日20億アクション以上) (※2100万会員モバゲータウンはデータマイニングの宝の山/Tech総研 より抜粋) ・統計解析/データマイニング/機械学習/自然言語処理 ・大規模分散処理 ぜひご連絡下さい koichi.hamada@gmail.com 49
    • よりよい世界の実現 よりよい世界を実現したい 一緒に実現する仲間を募集しています 大規模ソーシャルメディアのデータマイニング (2100万会員 1日20億アクション以上) (※2100万会員モバゲータウンはデータマイニングの宝の山/Tech総研 より抜粋) ・統計解析/データマイニング/機械学習/自然言語処理 ・大規模分散処理 R ぜひご連絡下さい koichi.hamada@gmail.com 50
    • よりよい世界の実現 よりよい世界を実現したい 一緒に実現する仲間を募集しています 大規模ソーシャルメディアのデータマイニング (2100万会員 1日20億アクション以上) (※2100万会員モバゲータウンはデータマイニングの宝の山/Tech総研 より抜粋) ・統計解析/データマイニング/機械学習/自然言語処理 ・大規模分散処理 R Hadoop/Pig/Hive/Zebra ぜひご連絡下さい koichi.hamada@gmail.com 51
    • よりよい世界の実現 よりよい世界を実現したい 一緒に実現する仲間を募集しています 大規模ソーシャルメディアのデータマイニング (2100万会員 1日20億アクション以上) (※2100万会員モバゲータウンはデータマイニングの宝の山/Tech総研 より抜粋) ・統計解析/データマイニング/機械学習/自然言語処理 ・大規模分散処理 R Hadoop/Pig/Hive/Zebra Mahout ぜひご連絡下さい koichi.hamada@gmail.com 52
    • よりよい世界の実現 よりよい世界を実現したい 一緒に実現する仲間を募集しています 大規模ソーシャルメディアのデータマイニング (2100万会員 1日20億アクション以上) (※2100万会員モバゲータウンはデータマイニングの宝の山/Tech総研 より抜粋) ・統計解析/データマイニング/機械学習/自然言語処理 ・大規模分散処理 R Hadoop/Pig/Hive/Zebra Mahout …etc ぜひご連絡下さい koichi.hamada@gmail.com 53
    • AGENDA ◆講師紹介 ◆Random Forestとは ◆決定木 ◆決定木とは ◆R言語での実行 ◆集団学習 ◆Random Forest ◆アルゴリズム ◆R言語での実行 ◆参考資料 ◆最後に
    • Random Forest とは 集団学習により 55
    • Random Forest とは 集団学習により 高精度の分類・予測を実現する 56
    • Random Forest とは 集団学習により 高精度の分類・予測を実現する 機械学習アルゴリズム 57
    • Random Forest とは 集団学習により 高精度の分類・予測を実現する 機械学習アルゴリズム “Random forests” (L. Breiman, 2001) 58
    • Random Forest とは 決定木の集団学習により 高精度の分類・予測を行う 学習用データ Random Sampling 1 Sampling 2 … Sampling B Forest Forest Tree 1 Tree 2 … Tree B予測対象 Result 1 Result 2 … Result B 分類・予測結果 59
    • Random Forest : 長所 Random Forest の 主な長所 ・精度が高い ・説明変数が数百、数千でも効率的に作動 ・目的変数に対する説明変数の重要度を推定 ・欠損値を持つデータでも有効に動作 ・個体数がアンバランスでもエラーバランスが保たれる 60
    • Random Forest : 長所 決定木、Support Vector Machine(SVM)、等 他分類器に比べ分類・予測精度が高い 例:11人の著者の10テーマ110編の文章分類 精度:高い (49個の特徴語。100回の学習・テストでの比較) Random Forest Bagging AdaBoost F1値平均 ニューラルネット 決定木 (量子ベクトル化) (CART) SVM K近傍法 カーネルK近傍法 引用元: 「ESTRELA」 2009年05月号 統計的テキスト解析(15) ~テキストの分類分析2~ http://mjin.doshisha.ac.jp/R/200905_70.pdf 61
    • Random Forest とは 決定木の集団学習により 高精度の分類・予測を行う 学習用データ Random Sampling 1 Sampling 2 … Sampling B Forest Forest Tree 1 Tree 2 … Tree B予測対象 Result 1 Result 2 … Result B 分類・予測結果 62
    • Random Forest とは 決定木の集団学習により 高精度の分類・予測を行う 学習用データ Random Sampling 1 Sampling 2 … Sampling B Forest Forest Tree 1 Tree 2 … Tree B予測対象 Result 1 Result 2 … Result B 分類・予測結果 63
    • Random Forest とは 決定木の集団学習により 高精度の分類・予測を行う 学習用データ Random Sampling 1 Sampling 2 … Sampling B Forest Forest Tree 1 Tree 2 … Tree B予測対象 Result 1 Result 2 … Result B 分類・予測結果 64
    • AGENDA ◆講師紹介 ◆Random Forestとは ◆決定木 ◆決定木とは ◆R言語での実行 ◆集団学習 ◆Random Forest ◆アルゴリズム ◆R言語での実行 ◆参考資料 ◆最後に
    • AGENDA ◆講師紹介 ◆Random Forestとは ◆決定木 ◆決定木とは ◆R言語での実行 ◆集団学習 ◆Random Forest ◆アルゴリズム ◆R言語での実行 ◆参考資料 ◆最後に
    • 決定木 とは 目的変数に影響が大きい変数・境界値・順序を 算出することができる 67
    • 決定木 とは 目的変数に影響が大きい変数・境界値・順序を 算出することができる 影響大 データ 木構造 68
    • 決定木 とは 目的変数に影響が大きい変数・境界値・順序を 算出することができる 影響大 データ 木構造 今まで気づかなかった重要な条件を知り サービスやプロセスを改良することができる 69
    • 解決する課題 目的変数に影響が大きい変数・境界値・順序を 算出することができる■丌具合発生率が大きい製造工程にはどのような特徴があるのか? 今まで気づかなかった重要な条件を知り サービスやプロセスを改良することができる 70
    • 解決する課題 目的変数に影響が大きい変数・境界値・順序を 算出することができる■丌具合発生率が大きい製造工程にはどのような特徴があるのか? ⇒ 丌具合原因の特定・改善 今まで気づかなかった重要な条件を知り サービスやプロセスを改良することができる 71
    • 解決する課題 目的変数に影響が大きい変数・境界値・順序を 算出することができる■丌具合発生率が大きい製造工程にはどのような特徴があるのか? ⇒ 丌具合原因の特定・改善■広告効果が高いユーザーにはどのような特徴があるのか? 今まで気づかなかった重要な条件を知り サービスやプロセスを改良することができる 72
    • 解決する課題 目的変数に影響が大きい変数・境界値・順序を 算出することができる■丌具合発生率が大きい製造工程にはどのような特徴があるのか? ⇒ 丌具合原因の特定・改善■広告効果が高いユーザーにはどのような特徴があるのか? ⇒ 投資対効果の高いターゲット選定 今まで気づかなかった重要な条件を知り サービスやプロセスを改良することができる 73
    • 解決する課題 目的変数に影響が大きい変数・境界値・順序を 算出することができる■丌具合発生率が大きい製造工程にはどのような特徴があるのか? ⇒ 丌具合原因の特定・改善■広告効果が高いユーザーにはどのような特徴があるのか? ⇒ 投資対効果の高いターゲット選定■優良ユーザーはどのような楽しみかたをしているか? 今まで気づかなかった重要な条件を知り サービスやプロセスを改良することができる 74
    • 解決する課題 目的変数に影響が大きい変数・境界値・順序を 算出することができる■丌具合発生率が大きい製造工程にはどのような特徴があるのか? ⇒ 丌具合原因の特定・改善■広告効果が高いユーザーにはどのような特徴があるのか? ⇒ 投資対効果の高いターゲット選定■優良ユーザーはどのような楽しみかたをしているか? ⇒ より継続的に楽しんでもらえるサービス改良 今まで気づかなかった重要な条件を知り サービスやプロセスを改良することができる 75
    • 解決する課題 目的変数に影響が大きい変数・境界値・順序を 算出することができる■丌具合発生率が大きい製造工程にはどのような特徴があるのか? ⇒ 丌具合原因の特定・改善■広告効果が高いユーザーにはどのような特徴があるのか? ⇒ 投資対効果の高いターゲット選定■優良ユーザーはどのような楽しみかたをしているか? ⇒ より継続的に楽しんでもらえるサービス改良 今まで気づかなかった重要な条件を知り サービスやプロセスを改良することができる 76
    • 決定木 とは 木構造の条件分岐で 分類・予測(回帰)を行う例: 植物の分類Iris(アヤメ)データ花葉と花びらの長さ・幅から種類の分類構造算出 説明変数 目的変数花葉(長さ・幅) 花びら(長さ・幅) 種類 77
    • 決定木 とは 木構造の条件分岐で 分類・予測(回帰)を行う例: 植物の分類 分類 花びらの長さIris(アヤメ)データ花葉と花びらの長さ・幅から 花びらの幅種類の分類構造算出 説明変数 目的変数花葉(長さ・幅) 花びら(長さ・幅) 種類 setosa virginica versicolor 78
    • 決定木 とは 木構造の条件分岐で 分類・予測(回帰)を行う例: 植物の分類 分類 花びらの長さIris(アヤメ)データ花葉と花びらの長さ・幅から 花びらの幅種類の分類構造算出 virginica setosa setosa virginica versicolor virginica versicolor virginica 79
    • 決定木 とは 木構造の条件分岐で 分類・予測(回帰)を行う例: ブレーキ後 停車距離 予測carsデータ車速度とブレーキ後の停車距離の関係構造算出 説明変数 目的変数 ブレーキ後の 車の速度 停車までの距離 80
    • 決定木 とは 木構造の条件分岐で 分類・予測(回帰)を行う例: ブレーキ後 停車距離 予測 回帰(予測) スピード(speed)carsデータ車速度とブレーキ後の停車距離の関係構造算出 説明変数 目的変数 ブレーキ後の 車の速度 停車までの距離 ブレーキ後の停車距離 81
    • 決定木 とは 木構造の条件分岐で 分類・予測(回帰)を行う例: ブレーキ後 停車距離 予測 回帰(予測) スピード(speed)carsデータ車速度とブレーキ後の停車距離の関係構造算出 ブレーキ後の停車距離 82
    • 決定木: 分岐基準 条件ノード A を条件ノードALとARに分けるとき 以下のΔIを最大化する分割を行う Classification And Regression Trees (CART) (Breiman et al, 1984)分類木 Entropy GINI係数 ※ :条件ノード A で クラス k をとる確率回帰木 尤離度(deviance) ※ :条件ノード A での目標変数 t の平均値 83
    • AGENDA ◆講師紹介 ◆Random Forestとは ◆決定木 ◆決定木とは ◆R言語での実行 ◆集団学習 ◆Random Forest ◆アルゴリズム ◆R言語での実行 ◆参考資料 ◆最後に
    • 決定木の実行 パッケージインストール # 決定木のインストール install.packages("mvpart") library(mvpart) 85
    • 決定木の実行 パッケージインストール # 決定木のインストール install.packages("mvpart") library(mvpart) # Species(種類)を分類変数として 樹木モデル を生成 # iris(アヤメ)データを使用 tree <- rpart(Species~., data = iris, method = "class") サンプルデータ iris(アヤメ)データ:よい性質を持ち よく使用される (R環境で標準提供されている) 説明変数 目的変数 花葉(長さ・幅) 花びら(長さ・幅) 種類 Sepal.Length Sepal.Width Petal.Length Petal.Width Species 5.1 3.5 1.4 0.2 setosa 4.9 3.0 1.4 0.2 setosa 4.7 3.2 1.3 0.2 setosa 4.6 3.1 1.5 0.2 setosa 5.0 3.6 1.4 0.2 setosa Iris Sanguinea 86
    • 決定木の実行 生成された決定木の表示 #Tree の表示 (全分岐での分布表示(all=TRUE) 、個数も表示(use.n =TRUE)) plot.rpart(tree) text.rpart(tree, all = TRUE, use.n = TRUE) 花びらの長さ 花びらの幅 setosa versicolor virginica 87
    • 決定木を用いた予測predtree <- predict(tree, data = newdata, type = "class") 88
    • 決定木の実行 学習・予測データに分け 学習用データで決定木作成 # iris(アヤメ)データを使用 data <- iris # 学習用データとテスト用データをランダムサンプリング ndata <- nrow(data)#データ行数 ridx <- sample(ndata, ndata*0.5) #50%のランダム抽出で学習・予測データ分割 data.learn <- data[ridx,] #学習用データ作成 data.test <- data[-ridx,] #予測用データ作成 # Species(種類)を分類変数として 決定木 を生成 tree <- rpart(Species~., data = data.learn, method = "class") 89
    • 決定木の実行 樹木モデル を用いた予測 # 樹木モデルを用いた予測 (新データ data.test に対する種類分類を予測) predtree <- predict(tree, data.test, type = "class") 90
    • 決定木の実行 樹木モデル を用いた予測 # 決定木を用いた予測 (新データ data.test に対する種類分類を予測) predtree <- predict(tree, data.test, type = "class") # 解との比較 table(predtree,data.test$Species) 予測結果: Tree 予測 predtree setosa versicolor virginica setosa 24 0 0 versicolor 0 22 3 virginica 0 3 23 91
    • Random Forest とは 決定木の集団学習により 高精度の分類・予測を行う 学習用データ Random Sampling 1 Sampling 2 … Sampling B Forest Forest Tree 1 Tree 2 … Tree B予測対象 Result 1 Result 2 … Result B 分類・予測結果 92
    • Random Forest とは 決定木の集団学習により 高精度の分類・予測を行う 学習用データ Random Sampling 1 Sampling 2 … Sampling B Forest Forest Tree 1 Tree 2 … Tree B予測対象 Result 1 Result 2 … Result B 分類・予測結果 93
    • AGENDA ◆講師紹介 ◆Random Forestとは ◆決定木 ◆決定木とは ◆R言語での実行 ◆集団学習 ◆Random Forest ◆アルゴリズム ◆R言語での実行 ◆参考資料 ◆最後に
    • 集団学習 とは 95
    • 集団学習 とは 複数モデル生成し 結果を統合 精度を向上させる 機械学習のアルゴリズム 96
    • 集団学習 とは 複数モデル生成し 結果を統合 精度を向上させる 機械学習のアルゴリズム ■異なるサンプル、異なる重みの 複数の学習モデルを生成 97
    • 集団学習 とは 複数モデル生成し 結果を統合 精度を向上させる 機械学習のアルゴリズム ■異なるサンプル、異なる重みの 複数の学習モデルを生成 ■各モデルの結果を統合・組合せにより 精度・汎用性を向上 98
    • 集団学習 とは 複数モデル生成し 結果を統合 精度を向上させる 機械学習のアルゴリズム ■異なるサンプル、異なる重みの 複数の学習モデルを生成 ■各モデルの結果を統合・組合せにより 精度・汎用性を向上 結果の統合 ・分類: 多数決 ・回帰: 平均値 99
    • 集団学習 とは 複数モデル生成し 結果を統合 精度を向上させる 機械学習のアルゴリズム ■異なるサンプル、異なる重みの 複数の学習モデルを生成 ■各モデルの結果を統合・組合せにより 精度・汎用性を向上 結果の統合 ・分類: 多数決 ・回帰: 平均値 100
    • AGENDA ◆講師紹介 ◆Random Forestとは ◆決定木 ◆決定木とは ◆R言語での実行 ◆集団学習 ◆Random Forest ◆アルゴリズム ◆R言語での実行 ◆参考資料 ◆最後に
    • AGENDA ◆講師紹介 ◆Random Forestとは ◆決定木 ◆決定木とは ◆R言語での実行 ◆集団学習 ◆Random Forest ◆アルゴリズム ◆R言語での実行 ◆参考資料 ◆最後に
    • Random Forest 樹木モデルの集団学習による 高精度の分類・予測(回帰) 学習用データ Random Sampling 1 Sampling 2 … Sampling B Forest Forest Tree 1 Tree 2 … Tree B予測対象 Result 1 Result 2 … Result B 分類・予測結果 103
    • 学習と予測学習 104
    • Random Forest アルゴリズム: 学習 Random Forest 105
    • Random Forest アルゴリズム: 学習 ブートストラップ サンプリング 学習データから重複を許しランダムに B組のサンプル集合抽出 学習用データ Random Sampling 1 Sampling 2 … Sampling B Forest 106
    • Random Forest アルゴリズム: 学習 ランダム抽出変数での決定木生成 各ノード展開で M個の説明変数からm個変数をランダム抽出 学習用データ Random Sampling 1 Sampling 2 … Sampling B Forest Tree 1 107
    • Random Forest アルゴリズム: 学習 全サンプル集合で 決定木を生成 学習用データ Random Sampling 1 Sampling 2 … Sampling B Forest Tree 1 Tree 2 … Tree B 108
    • Random Forest アルゴリズム: 学習 複数の木モデル = Forest (森) モデル 学習用データ Random Sampling 1 Sampling 2 … Sampling B Forest Tree 1 Tree 2 … Tree B 109
    • Random Forest アルゴリズム: 学習 複数の木モデル = Forest (森) モデル 学習用データ Random Sampling 1 Sampling 2 … Sampling B Forest Forest Tree 1 Tree 2 … Tree B 110
    • 学習と予測予測 111
    • Random Forest アルゴリズム 全木モデルで 分類・回帰予測の結果算出 学習用データ Random Sampling 1 Sampling 2 … Sampling B Forest Forest Tree 1 Tree 2 … Tree B予測対象 Result 1 Result 2 … Result B 112
    • Random Forest アルゴリズム 全木モデルの結果を統合する 分類:多数決、回帰予測:平均 学習用データ Random Sampling 1 Sampling 2 … Sampling B Forest Forest Tree 1 Tree 2 … Tree B予測対象 Result 1 Result 2 … Result B 分類・予測結果 113
    • Random Forest アルゴリズム 木モデルの集団学習による 高精度の分類・予測(回帰) 学習用データ Random Sampling 1 Sampling 2 … Sampling B Forest Forest Tree 1 Tree 2 … Tree B予測対象 Result 1 Result 2 … Result B 分類・予測結果 114
    • Random Forest : 長所 Random Forest の 主な長所 ・精度が高い ・説明変数が数百、数千でも効率的に作動 ・目的変数に対する説明変数の重要度を推定 ・欠損値を持つデータでも有効に動作 ・個体数がアンバランスでもエラーバランスが保たれる 115
    • Random Forest : 長所 決定木、Support Vector Machine(SVM)、等 他分類器に比べ分類・予測精度が高い 例:11人の著者の10テーマ110編の文章分類 精度:高い (49個の特徴語。100回の学習・テストでの比較) Random Forest Bagging AdaBoost F1値平均 ニューラルネット 樹木モデル (量子ベクトル化) (CART) SVM K近傍法 カーネルK近傍法 引用元: 「ESTRELA」 2009年05月号 統計的テキスト解析(15) ~テキストの分類分析2~ http://mjin.doshisha.ac.jp/R/200905_70.pdf 116
    • AGENDA ◆講師紹介 ◆Random Forestとは ◆決定木 ◆決定木とは ◆R言語での実行 ◆集団学習 ◆Random Forest ◆アルゴリズム ◆R言語での実行 ◆参考資料 ◆最後に
    • Random Forest の実行 パッケージインストール # randomForest のインストール install.packages("randomForest") library(randomForest) 118
    • Random Forest の実行 学習用・予測用データ作成 # iris(アヤメ)データを使用 data <- iris # 学習用データとテスト用データをランダムサンプリング ndata <- nrow(data)#データ行数 ridx <- sample(ndata, ndata*0.5) #50%のランダム抽出で学習・予測データ分割 data.learn <- data[ridx,] #学習用データ作成 data.test <- data[-ridx,] #予測用データ作成 サンプルデータ iris(アヤメ)データ:よい性質を持ち よく使用される (R環境で標準提供されている) 説明変数 目的変数 花葉(長さ・幅) 花びら(長さ・幅) 種類 Sepal.Length Sepal.Width Petal.Length Petal.Width Species 5.1 3.5 1.4 0.2 setosa 4.9 3.0 1.4 0.2 setosa 4.7 3.2 1.3 0.2 setosa 4.6 3.1 1.5 0.2 setosa 5.0 3.6 1.4 0.2 setosa Iris Sanguinea 119
    • Random Forest の実行 Random Forest の生成 # Species(種類)を分類変数として Random Forest を生成 forest <- randomForest(Species~.,data = data.learn) 120
    • Random Forest の実行 Random Forest の生成 # Species(種類)を分類変数として Random Forest を生成 forest <- randomForest(Species~.,data = data.learn)関数 randomForest(formula, data = NULL, …, ..., subset, na.action=na.fail) 主要な引数 内容 formula モデルの形式 x, y 目的変数と説明変数 (formula 代わりに用いる) data, subset 用いるデータ na.action 欠損値の表記型の指定 ntree 生成する木の数 (デフォルトは 500) mtry 分岐に用いる変数の数 (デフォルト, 分類 √M, 回帰 M/3, M:変数総数) importance 変数の重要度出力 (デフォルトは FALSE) 121
    • Random Forest の実行 生成されたForest を用いた 高精度の予測 # Forestを用いた予測の実行 pred.forest <- predict(forest, newdata = data.test, type = "class") # 解との比較 table(pred.forest, data.test[,5]) 122
    • Random Forest の実行 生成されたForest を用いた 高精度の予測 # Forestを用いた予測の実行 pred.forest <- predict(forest, newdata = data.test, type = "class") # 解との比較 table(pred.forest, data.test[,5]) 予測結果: Random Forest 予測 pred.forest setosa versicolor virginica setosa 27 0 0 versicolor 0 28 0 virginica 0 0 20 分類間違いなし 123
    • Random Forest の実行 生成されたForest を用いた 高精度の予測 # Forestを用いた予測の実行 pred.forest <- predict(forest, newdata = data.test, type = "class") # 解との比較 table(pred.forest, data.test[,5]) 予測結果: Random Forest 予測 ※比較参照 予測結果:分類木 (rpart) pred.forest setosa versicolor virginica pred.dt setosa versicolor virginica setosa 27 0 0 setosa 27 0 0 versicolor 0 28 0 versicolor 0 26 1 virginica 0 0 20 virginica 0 2 19 分類間違いなし 124
    • 樹木モデルとの比較 きわどいところも 分類できている 予測結果: Random Forest 予測 ※比較参照 予測結果:分類木 (rpart) pred.forest setosa versicolor virginica pred.dt setosa versicolor virginica setosa 27 0 0 setosa 27 0 0 versicolor 0 28 0 versicolor 0 26 1 virginica 0 0 20 virginica 0 2 19 分類木のエラー箇所 virginica setosa virginica versicolor 125
    • Random Forest の実行 重要度算出 各変数の目的変数に対する重要度 重要度 グラフ表示 #重要度 グラフ表示 varImpPlot(forest) #重要度 出力 Importance(forest) 重要度 出力 > importance(forest) MeanDecreaseGini Sepal.Length 4.791776 Sepal.Width 2.102875 Petal.Length 20.811569 Petal.Width 20.627166 126
    • AGENDA ◆講師紹介 ◆Random Forestとは ◆決定木 ◆決定木とは ◆R言語での実行 ◆集団学習 ◆Random Forest ◆アルゴリズム ◆R言語での実行 ◆参考資料 ◆最後に
    • 参考資料:R/CART/Random Forest Rによるデータサイエンス Rによる統計解析 ~データ解析の基礎から最新手法まで ~■CART:L. Breiman, J. H. Friedman, R. A. Olshen and. C. J. Stone:“Classification and Regression Trees.”, Wadsworth (1984)■Random Forest:L. Breiman. Random forests. Machine Learning, 45, 5–32 (2001)
    • AGENDA ◆講師紹介 ◆Random Forestとは ◆決定木 ◆決定木とは ◆R言語での実行 ◆集団学習 ◆Random Forest ◆アルゴリズム ◆R言語での実行 ◆参考資料 ◆最後に
    • 最後に 蓄積されたデータを有効活用してきたい 131
    • 最後に 蓄積されたデータを有効活用してきたい Google Group: http://groups.google.com/group/webmining-tokyo 132
    • 最後に データマイニング+WEB勉強会 発表者を募集しています 連絡 Google Group: http://groups.google.com/group/webmining-tokyo Twitter : http://twitter.com/hamadakoichi 133
    • 最後に 134
    • 最後に 日本初 R言語の人材募集要項 http://www.dena.jp/recruit/sp2/career/guide09.html 135
    • よりよい世界の実現 より蓄積されたデータを有効活用し 世界の未来をよりよいものにしていきたい データマイニング+WEB勉強会@東京 Google Group: http://groups.google.com/group/webmining-tokyo 136
    • よりよい世界の実現 よりよい世界を実現したい 137
    • よりよい世界の実現 よりよい世界を実現したい 一緒に実現する仲間を募集しています 大規模ソーシャルメディアのデータマイニング (2100万会員 1日20億アクション以上) (※2100万会員モバゲータウンはデータマイニングの宝の山/Tech総研 より抜粋) ・統計解析/データマイニング/機械学習/自然言語処理 ・大規模分散処理 R Hadoop/Pig/Hive/Zebra Mahout …etc ぜひご連絡下さい koichi.hamada@gmail.com 138
    • ご清聴ありがとうございました 139
    • AGENDA ◆講師紹介 ◆Random Forestとは ◆決定木 ◆決定木とは ◆R言語での実行 ◆集団学習 ◆Random Forest ◆アルゴリズム ◆R言語での実行 ◆参考資料 ◆最後に