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.

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

49,639 views

Published on

  • Be the first to comment

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③ 箱ひげ図の描画(左)   棒グラフの描画(右)  

×