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.

RandomForest

1,245 views

Published on

JOI夏期セミ2015での発表スライド

Published in: Data & Analytics
  • Be the first to comment

RandomForest

  1. 1. ランダムフォレスト goodbaton
  2. 2. 内容 ランダムフォレストについて Kaggleで実践
  3. 3. ランダムフォレストとは 複数の決定木を生成して多数決により決める方法 決定木に使用するデータをランダムに選択するこ とで相関の低い木を作成できる 多クラスの識別を自然にできる サイズを大きくしても過学習が生じない 誤り率を求めやすい
  4. 4. ランダムフォレストとは 複数の決定木を生成して多数決により決める方法 決定木に使用するデータをランダムに選択するこ とで相関の低い木を作成できる 多クラスの識別を自然にできる サイズを大きくしても過学習が生じない 誤り率を求めやすい
  5. 5. 決定木 特徴で領域の分割をする x y
  6. 6. 決定木 特徴で領域の分割をする x y
  7. 7. 決定木 特徴で領域の分割をする x y
  8. 8. 決定木 特徴で領域の分割をする a x y
  9. 9. 決定木 特徴で領域の分割をする b a x y
  10. 10. 決定木 特徴で領域の分割をする c b a x y
  11. 11. 決定木 特徴で領域の分割をする c b a d x y
  12. 12. 決定木 領域の分割で木の分岐をする R1,R2,R3,R4,R5,R6,Y1,Y2,Y3,Y4,Y5,Y6 x y
  13. 13. 決定木 領域の分割で木の分岐をする R1,R2,R3,R4,R5,R6,Y1,Y2,Y3,Y4,Y5,Y6 R1,R2,R3,R4,R5,Y1,Y2,Y3 R6,Y4,Y5,Y6 a x<a a≦x x y
  14. 14. 決定木 領域の分割で木の分岐をする R1,R2,R3,R4,R5,R6,Y1,Y2,Y3,Y4,Y5,Y6 R1,R2,R3,R4,R5,Y1,Y2,Y3 R6,Y4,Y5,Y6 R4,R5,Y1,Y2,Y3R1,R2,R3 a b x<a a≦x y<b b≦y x y
  15. 15. 決定木 領域の分割で木の分岐をする R1,R2,R3,R4,R5,R6,Y1,Y2,Y3,Y4,Y5,Y6 R1,R2,R3,R4,R5,Y1,Y2,Y3 R6,Y4,Y5,Y6 R4,R5,Y1,Y2,Y3R1,R2,R3 Y1,Y2,Y3 R4,R5 a b c x<a a≦x y<b x<c c≦x b≦y x y
  16. 16. 決定木 領域の分割で木の分岐をする R1,R2,R3,R4,R5,R6,Y1,Y2,Y3,Y4,Y5,Y6 R1,R2,R3,R4,R5,Y1,Y2,Y3 R6,Y4,Y5,Y6 Y4,Y5,Y6R6R4,R5,Y1,Y2,Y3R1,R2,R3 a b c d Y1,Y2,Y3 R4,R5 x<a a≦x y<b b≦y x<c c≦x y<d d≦y x y
  17. 17. 決定木 境界値の決定方法 ジニ係数を利用し不純度を求め、不純度の減少が最大になる分割を行う ジニ係数 不純度の差 …ノードtでi番目のクラスのデータが選ばれる確率 …左,右のノードに入る要素数の割合
  18. 18. ランダムフォレスト 以下をM回繰り返す(Mは50-200程度) N個の学習用データからN回の復元抽出を行う できた集合を用いて決定木を作る M個の決定木にテストデータ与える M個の結果から最多の結果を識別結果とする
  19. 19. ランダムフォレスト #1 #2 #3 #4 #5 #6 #7 #8 ・・・ #N-1 #N N回復元抽出 N個
  20. 20. ランダムフォレスト #1 #2 #3 #4 #5 #6 #7 #8 ・・・ #N-1 #N #6 N回復元抽出 N個
  21. 21. ランダムフォレスト #1 #2 #3 #4 #5 #6 #7 #8 ・・・ #N-1 #N #6 #3 N回復元抽出 N個
  22. 22. ランダムフォレスト #1 #2 #3 #4 #5 #6 #7 #8 ・・・ #N-1 #N #6 #3 #8 N回復元抽出 N個
  23. 23. ランダムフォレスト #1 #2 #3 #4 #5 #6 #7 #8 ・・・ #N-1 #N #6 #3 #8 #6 N回復元抽出 N個
  24. 24. ランダムフォレスト #1 #2 #3 #4 #5 #6 #7 #8 ・・・ #N-1 #N #6 #3 #8 #6 #N-1 N回復元抽出 N個
  25. 25. ランダムフォレスト #1 #2 #3 #4 #5 #6 #7 #8 ・・・ #N-1 #N #6 #3 #8 #6 #N-1 #2 #5 #7 ・・・ #N-2 #2 N回復元抽出 N個
  26. 26. ランダムフォレスト #6 #3 #8 #6 #N-1 #2 #5 #7 ・・・ #N-2 #2 1回目
  27. 27. ランダムフォレスト #6 #3 #8 #6 #N-1 #2 #5 #7 ・・・ #N-2 #2 1回目
  28. 28. ランダムフォレスト #6 #4 #9 #1 #9 #1 #5 #9 ・・・ #N #8 2回目
  29. 29. ランダムフォレスト #3 #7 #1 #1 #6 #1 #2 #5 ・・・ #N-1 #7 3回目
  30. 30. ランダムフォレスト #8 #3 #2 #1 #8 #7 #3 #1 ・・・ #9 #2 M回目 ・・・
  31. 31. ランダムフォレスト ・・・
  32. 32. ランダムフォレスト ・・・ 3
  33. 33. ランダムフォレスト ・・・ 3 8
  34. 34. ランダムフォレスト ・・・ 3 8 3
  35. 35. ランダムフォレスト ・・・ 3 8 3 3
  36. 36. ランダムフォレスト ・・・ 3
  37. 37. ランダムフォレストとは 複数の決定木を生成して多数決により決める方法 決定木に使用するデータをランダムに選択するこ とで相関の低い木を作成できる 多クラスの識別を自然にできる サイズを大きくしても過学習が生じない 誤り率を求めやすい
  38. 38. 実践! KaggleのDigit Recognizer 手書きの数字の認識 28*28の256段階の白黒画像 42000個の学習用データ(76.8MB) 28000個のテスト用データ(51.1MB)
  39. 39. 工夫1 元 28*28個 1個 + ⇒ 特徴数…785個 黒の数…109個 2値化
  40. 40. 工夫2 傾けたものも学習 誤認識が増える!!
  41. 41. 工夫3 画像の圧縮 2*2 4*4 8*8 14*14 20*20 28*28 高速化!! 誤認識の増加!! 30%!!
  42. 42. 実行 木の数 150-400 木のノード数 約50000個 実行時間 約15分!! 3sec/木の数 使用メモリ 約400MB 木の保存テキストデータ 約100MB
  43. 43. 提出結果
  44. 44. まとめ 実装はそこまで辛くない 実行に多くの時間と多くのメモリが必要 工夫はあまりできず 楽をしたい人はR言語にライブラリがあるらしい
  45. 45. 参考 R言語での実装 https://www.kaggle.com/benhamner/digit-recognizer/random-forest-benchmark 22行!!

×