Rによるデータサイエンス13「樹木モデル」

43,640 views

Published on

0 Comments
28 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
43,640
On SlideShare
0
From Embeds
0
Number of Embeds
29,563
Actions
Shares
0
Downloads
123
Comments
0
Likes
28
Embeds 0
No embeds

No notes for slide

Rによるデータサイエンス13「樹木モデル」

  1. 1. Rによるデータサイエンス第13章   「樹木モデル」 テキスト「Rによるデータサイエンス」に沿って   Rでの樹木モデルの扱い方を解説します。       2011年10月22日 第18回R勉強会@東京   @takemikami
  2. 2. 13.1  樹木モデルとは 樹木モデルとは •  説明変数を何らかの基準をもとに分岐させて 構築した判別・予測のモデル   •  分岐の過程を木構造で示すことが出来る   •  問題に応じた呼び方   –  判別分析:分類木・決定木   –  回帰分析:回帰木  
  3. 3. 13.1  樹木モデルとは 判別分析の例 アヤメの品種分類 •  がく片の大きさから   アヤメの品種を判別する分析   •  説明変数:がく片の大きさ   •  目的変数:アヤメの品種   setosa vergicolor virginica
  4. 4. 13.1  樹木モデルとは 判別分析の例 アヤメの品種分類 •  がく片の大きさとアヤメの品種を木構造で判 断
  5. 5. 13.1  樹木モデルとは 回帰分析の例 自動車の速度と停止に要する距離 •  自動車の速度から   ブレーキから停止までにかかる距離の予測   •  説明変数:自動車の速度   •  目的変数:停止までにかかる距離   速度 停止までにかかる距離
  6. 6. 13.1  樹木モデルとは 回帰分析の例 自動車の速度と停止に要する距離 •  自動車の速度と止まるまでの距離を木構造 で分析
  7. 7. 13.2  樹木モデルの基礎 樹木モデルの基礎 •  樹木モデルのアルゴリズム   –  生成・生長:分岐の方法   –  剪定:モデルの簡潔化   生成・生長 今日用いられているアルゴリズム アルゴリズム 分岐・剪定の方法 CHAID カイ2乗統計量、F統計量   C4.5/C5.0/See5 利得比 剪定 CART ジニ多様性指標、情報利得
  8. 8. 13.2  樹木モデルの基礎 具体例 夏休み海水浴に行く・行かない① •  風・気温から海水浴に行くかを判断   元データ 行動パターン判断結果 No 風 気温 海水浴 気温:高 気温:中 気温:低 1 弱 高 行く   風:弱 行く 行く 行かない 2 弱 低 行かない 風:強 行かない 行かない 行かない 3 弱 高 行く   4 弱 中 行く   これを樹木モデルに   5 弱 低 行かない 当てはめて考えてみる 6 弱 高 行かない 7 強 高 行かない 8 強 低 行かない 9 強 中 行かない 目的変数:海水浴行く・行かない   10 強 高 行く 説明変数:風・気温
  9. 9. 13.2  樹木モデルの基礎 具体例 夏休み海水浴に行く・行かない② •  ジニ係数(Gini  Index)を用いて分岐点を計算   t:ノード数 i:クラス p:比率 •  分布の不純度の尺度   値が大きいほど、不純度が高い(データがば らついている)  
  10. 10. 13.2  樹木モデルの基礎 具体例 夏休み海水浴に行く・行かない③ •  分岐前の状態のジニ係数を算出   No 風 気温 海水浴 1 弱 高 行く   GI(分岐前)   2 弱 低 行かない   =  1-­‐[(4/10)2  +  (6/10)2]  =  0.48 3 弱 高 行く   4 弱 中 行く   5 弱 低 行かない 6 弱 高 行かない 7 強 高 行かない 8 強 低 行かない 9 強 中 行かない 10 強 高 行く
  11. 11. 13.2  樹木モデルの基礎 具体例 夏休み海水浴に行く・行かない④ •  風の強弱を分岐点とするジニ係数を算出   No 風 気温 海水浴 1 弱 高 行く   GI(風=弱)   2 弱 低 行かない   =  1-­‐[(3/6)2  +  (3/6)2]  =  0.5 3 弱 高 行く   4 弱 中 行く   GI(風=強・弱)   5 弱 低 行かない  =  GI分岐前   6 弱 高 行かない    –  6/10GI(風=弱)  -­‐  4/10(風=強)   7 強 高 行かない  =  0.032 8 強 低 行かない GI(風=強)   9 強 中 行かない   =  1-­‐[(1/4)2  +  (3/4)2]  =  0.375 10 強 高 行く
  12. 12. 13.2  樹木モデルの基礎 具体例 夏休み海水浴に行く・行かない⑤ •  気温の高中低を分岐点とするジニ係数算出   No 風 気温 海水浴 GI(気温=高)   1 弱 高 行く     =  1-­‐[(2/5)2  +  (3/5)2]  =  0.48   2 弱 低 行かない GI(気温=中低)   3 弱 高 行く     =  1-­‐[(4/5)2  +  (1/5)2]  =  0.32   4 弱 中 行く   GI(気温=高・中低)   5 弱 低 行かない  =  GI(分岐前)   6 弱 高 行かない   -­‐  GI(気温=高)-­‐GI(気温=中低)   7 強 高 行かない  =  0.08   8 強 低 行かない 同様に、   9 強 中 行かない  GI(気温=中・高低)=0.05   10 強 高 行く  GI(気温=低・高中)=0.137  
  13. 13. 13.2  樹木モデルの基礎 具体例 夏休み海水浴に行く・行かない⑥ •  (最も大きい)ジニ係数から分岐点を決める   GI(風=強・弱)                  =  0.032   GI(気温=高・中低)  =  0.08   GI(気温=中・高低)  =  0.05   ① GI(気温=低・高中)  =  0.137   第1ノードは気温の高中・低で分岐。   同様にして第2ノード以降も求めていく ② 気温:高 気温:中 気温:低 風:弱 行かない 行かない 行かない ② 風:強 行く 行く 行かない ①
  14. 14. 13.3.2  分類木 分類木で使用するデータ •  がく片の大きさとアヤメの品種の対応データ   (説明変数)   がく片の大きさ (目的変数)   アヤメの品種 アヤメの品種種別   データ50件づつ  
  15. 15. 13.3.2  分類木 分類木 (1)木の生成① •  がく片の大きさからアヤメの品種を判別する 分類木を生成  
  16. 16. 13.3.2  分類木 分類木 (1)木の生成② ライブラリ読込。事前に install.packages(“mvpart”)   の実行が必要   乱数の初期化   ※後述する交差確認法の 結果を固定するため   分類木の生成   入力データ:iris   目的変数:SpeciesC   分類条件   該当値   構成比   ノードの 非該当   データ数   データ数  
  17. 17. 13.3.2  分類木 分類木 (1)木の生成③ 1) 3) 2) 6) 7) 12) 13) 分類木の描画   ラベル・グラフの描画  
  18. 18. 13.3.2  分類木 分類木 (2)木の剪定① •  交差確認法(cross  valida[on)の結果から、剪 定基準を判断   Min+1SE法:   交差確認法の結果 xerror最小値を中心とした標準偏差の1倍 範囲内の最大error値を基準   基準のxerror値   →0.10+0.030551  =  0.130551 目安の複雑度  
  19. 19. 13.3.2  分類木 分類木 (2)木の剪定② •  目安の複雑度を用いて剪定   目安の複雑度で剪定   分類木描画(下)   複雑度描画(右)  
  20. 20. 13.3.2  分類木 分類木 (3)判別① •  (未知データの判別を想定して、)モデル作成 に用いていないデータを用意し、予測する   –  奇数行データ:学習用→モデル作成に使用   –  偶数行データ:テスト用→判別に使用  
  21. 21. 13.3.2  分類木 分類木 (3)判別② 偶数行・奇数行 でデータ分割   学習データで   複雑度を表示(右)   分類木生成   予測・判別を実施   剪定の必要なしと 判断  
  22. 22. 13.3.3  回帰木 回帰木で使用するデータ •  自動車の速度とブレーキから停止までにかか る距離のデータ (説明変数)   速度   (目的変数)   停止までの距離  
  23. 23. 13.3.3  回帰木 回帰木  (1)回帰木の生成① •  自動車の速度からブレーキから停止までに かかる距離の予測
  24. 24. 13.3.3  回帰木 回帰木  (1)回帰木の生成② 回帰木の生成   目的変数:dist  分類条件   ノードの 実測値   尤離度   データ数  
  25. 25. 13.3.3  回帰木 回帰木  (2)回帰木の剪定① •  選定基準の判断および剪定 目安の複雑度を確認(右)   目安の   複雑度で剪定  
  26. 26. 13.3.4  多変量回帰木 多変量回帰木で使用するデータ •  「蜘蛛の種類」と「蜘蛛狩りの環境」の分布 データ (目的変数)   (説明変数)   蜘蛛の種類と数   蜘蛛狩りの環境  
  27. 27. 13.3.4  多変量回帰木 多変量回帰木  (2)解析と結果① 多変量回帰木:    目的変数が複数ある回帰木     説明変数:蜘蛛狩りの環境   目的変数:蜘蛛の種類の分布   として多変量回帰木を生成
  28. 28. 13.3.4  多変量回帰木 多変量回帰木  (2)解析と結果① 目的変数の主成分分析
  29. 29. 13.4  補遺 パッケージ:tree① 事前に   折れ線回帰図 install.packages(”tree”);   の実行が必要   折れ線回帰図の描画  
  30. 30. 13.4  補遺 パッケージ:tree② 分割分類図 分割分類図の描画  
  31. 31. 13.4  補遺 パッケージ:Rweka① 事前に   install.packages("RWeka",  dependencies=TRUE);   の実行が必要   C4.5のアルゴリズムによる   分類木の生成  
  32. 32. 13.4  補遺 パッケージ:Rweka② 事前に   install.packages(”party",  dependencies=TRUE);  library(party)   の実行が必要  
  33. 33. 13.4  補遺 パッケージ:Rweka③ 箱ひげ図の描画(左)   棒グラフの描画(右)  

×