SlideShare a Scribd company logo
1 of 19
Download to read offline
ランダムフォレスト回帰
第10章後半の補⾜
2018年4⽉13⽇
⾃⼰紹介
• ID: rysk
• 仕事: インフラ・エンジニア
• Python歴: 2017年秋から
前回……
• 10章後半の発表をしたけれど、こっそり10.7.2節を⾶ば
した。
• 何⼈かの⼈がその節でやっているランダムフォレスト回帰
に興味がありそうだった。
• で、調べたりscikit-learnのソースを読んだりしてみた。
• 書籍内の必要な図はスライドに出てきます。本を都度⾒る
必要は無いです。
• コードは出てきません。jupyterなどを準備しなくても良
いです。
• 発表資料は後でconnpassのサイトに上げます。写真など
撮らなくても⼤丈夫でです。
• 質問や突っ込みは随時OKです。出来れば挙⼿してくださ
い。
10.7.2
ランダムフォレストを使って
⾮線形関係に対処する 

10章後半の流れ
• 学習したモデルの良さを知る為に評価する (残差プロット)
• その結果、問題があればモデルを再構築する (⾮線形モデ
ルなど)
• 過学習があれば正則化で対応する (3種類の正則化)
ランダムフォレスト回帰は
⾮線形モデルの⼀種
ランダムフォレスト
• 3.6.3節で分類器として出てきた(86ページ)。
• ランダムフォレストは決定⽊を複数組み合わせ(アンサンブ
ル)して構成する
• データはブートストラップで⾮復元抽出 (訓練データの⼀部
しか使わない)
• 個々の決定⽊で使う特徴量もランダムで選択
• 最終的に作られた複数の決定⽊の投票結果がモデルの予測値
決定⽊
• 3.6節でやった分類器の⼀つ(77ページ)
• 樹形図のノードが分類条件
• 分類境界は任意の軸に平⾏
決定⽊の分類境界
分類境界は軸に平⾏
分類境界は軸に平⾏
決定⽊と回帰⽊
• 決定⽊で回帰をする場合は回帰⽊(Regression Tree)と呼
ぶ
• 決定⽊で分類する場合は分類⽊(Classification Tree)と呼
ぶ
• 回帰⽊と分類⽊を合わせて決定⽊と呼ぶ
ノード分割⽅法
分類⽊ではノードの不純度を基準にノード分割していた。
不純度には
• ジニ不純度
• エントロピー
• 分類誤差
の3種類があった。
回帰⽊の分割⽅法
回帰⽊では、平均⼆乗誤差(Mean Square Error; MSE)を使っ
て分割する。
この式は要するに⽬的変数の分散。
※Chalk Talkで説明します
scikit-learnではMSEの他に平均絶対誤差(Mean Absolute
Error; MAE)も選択可能
MSE(t) =
1
N
X
(y(i)
ˆyt)
2
回帰⽊の例
10.7.2節で出てくる
コードの回帰⽊を
表⽰したもの(290ページ)
回帰⽊の個々のノード
分類条件
(LSTATは特徴量の1つ)
平均⼆乗誤差
ノードに⼊⼒された
標本数
ノード配下の⽬的変数の
平均値
回帰⽊の回帰直線
階段状の回帰直線の1段分が
回帰⽊の1つのノードに対応
ノードと直線の対応1
①
② ③
④ ⑤ ⑥ ⑦
ノードと直線の対応2
①
②
③
④
⑤
⑥
⑦
参考⽂献
• Random Forestsとその応⽤, http://
www.vision.cs.chubu.ac.jp/cvtutorial/PDF/
04RandomForests.pdf
• Scikit-learn Documentation, http://scikit-learn.org/
stable/documentation.html
ご清聴
ありがとうございました。

More Related Content

What's hot

.NET Standard で PostgreSql を使ってみた
.NET Standard で PostgreSql を使ってみた.NET Standard で PostgreSql を使ってみた
.NET Standard で PostgreSql を使ってみたm ishizaki
 
RubyKaigi2011の雰囲気
RubyKaigi2011の雰囲気RubyKaigi2011の雰囲気
RubyKaigi2011の雰囲気Sea Mountain
 
mruby/cで始めるM5Stack &mrubyスクリプト開発
mruby/cで始めるM5Stack &mrubyスクリプト開発mruby/cで始めるM5Stack &mrubyスクリプト開発
mruby/cで始めるM5Stack &mrubyスクリプト開発kishima7
 
量子コンピュータでニューラルネットワークな論文紹介
量子コンピュータでニューラルネットワークな論文紹介量子コンピュータでニューラルネットワークな論文紹介
量子コンピュータでニューラルネットワークな論文紹介Takatomo Torigoe
 
OpenLayersで始める地図の操作
OpenLayersで始める地図の操作OpenLayersで始める地図の操作
OpenLayersで始める地図の操作Yuki Yazaki
 
Ros,gazeboとchainerを用いた畳込みニューラルネットワークによる3次元形状の学習
Ros,gazeboとchainerを用いた畳込みニューラルネットワークによる3次元形状の学習Ros,gazeboとchainerを用いた畳込みニューラルネットワークによる3次元形状の学習
Ros,gazeboとchainerを用いた畳込みニューラルネットワークによる3次元形状の学習Hiroaki Kaneda
 
先端技術 関数型プログラミング
先端技術 関数型プログラミング先端技術 関数型プログラミング
先端技術 関数型プログラミング聡 中川
 
IT業界における伝統芸能の継承 #hachiojipm
IT業界における伝統芸能の継承 #hachiojipmIT業界における伝統芸能の継承 #hachiojipm
IT業界における伝統芸能の継承 #hachiojipm鉄次 尾形
 
メモリアロケーションからみた拡張ライブラリに大切なこと
メモリアロケーションからみた拡張ライブラリに大切なことメモリアロケーションからみた拡張ライブラリに大切なこと
メモリアロケーションからみた拡張ライブラリに大切なことMasaya TARUI
 
Siv3Dのすゝめ
Siv3DのすゝめSiv3Dのすゝめ
Siv3DのすゝめAzaika At
 
jTthree V3 technical preview
jTthree V3 technical previewjTthree V3 technical preview
jTthree V3 technical previewMasaki Yamamoto
 
第2回 mix c++勉強会@tokyo 資料
第2回 mix c++勉強会@tokyo 資料第2回 mix c++勉強会@tokyo 資料
第2回 mix c++勉強会@tokyo 資料真一 北原
 
Rubyと機械学習の現状
Rubyと機械学習の現状Rubyと機械学習の現状
Rubyと機械学習の現状Aki Ariga
 
クリーンアーキテクチャ学んでみた
クリーンアーキテクチャ学んでみたクリーンアーキテクチャ学んでみた
クリーンアーキテクチャ学んでみたIsao Ebisujima
 
再帰、漸化式、差分方程式とアルゴリズム Gx#20
再帰、漸化式、差分方程式とアルゴリズム   Gx#20再帰、漸化式、差分方程式とアルゴリズム   Gx#20
再帰、漸化式、差分方程式とアルゴリズム Gx#20鉄次 尾形
 

What's hot (16)

.NET Standard で PostgreSql を使ってみた
.NET Standard で PostgreSql を使ってみた.NET Standard で PostgreSql を使ってみた
.NET Standard で PostgreSql を使ってみた
 
RubyKaigi2011の雰囲気
RubyKaigi2011の雰囲気RubyKaigi2011の雰囲気
RubyKaigi2011の雰囲気
 
mruby/cで始めるM5Stack &mrubyスクリプト開発
mruby/cで始めるM5Stack &mrubyスクリプト開発mruby/cで始めるM5Stack &mrubyスクリプト開発
mruby/cで始めるM5Stack &mrubyスクリプト開発
 
量子コンピュータでニューラルネットワークな論文紹介
量子コンピュータでニューラルネットワークな論文紹介量子コンピュータでニューラルネットワークな論文紹介
量子コンピュータでニューラルネットワークな論文紹介
 
OpenLayersで始める地図の操作
OpenLayersで始める地図の操作OpenLayersで始める地図の操作
OpenLayersで始める地図の操作
 
Ros,gazeboとchainerを用いた畳込みニューラルネットワークによる3次元形状の学習
Ros,gazeboとchainerを用いた畳込みニューラルネットワークによる3次元形状の学習Ros,gazeboとchainerを用いた畳込みニューラルネットワークによる3次元形状の学習
Ros,gazeboとchainerを用いた畳込みニューラルネットワークによる3次元形状の学習
 
先端技術 関数型プログラミング
先端技術 関数型プログラミング先端技術 関数型プログラミング
先端技術 関数型プログラミング
 
IT業界における伝統芸能の継承 #hachiojipm
IT業界における伝統芸能の継承 #hachiojipmIT業界における伝統芸能の継承 #hachiojipm
IT業界における伝統芸能の継承 #hachiojipm
 
メモリアロケーションからみた拡張ライブラリに大切なこと
メモリアロケーションからみた拡張ライブラリに大切なことメモリアロケーションからみた拡張ライブラリに大切なこと
メモリアロケーションからみた拡張ライブラリに大切なこと
 
Siv3Dのすゝめ
Siv3DのすゝめSiv3Dのすゝめ
Siv3Dのすゝめ
 
jTthree V3 technical preview
jTthree V3 technical previewjTthree V3 technical preview
jTthree V3 technical preview
 
第2回 mix c++勉強会@tokyo 資料
第2回 mix c++勉強会@tokyo 資料第2回 mix c++勉強会@tokyo 資料
第2回 mix c++勉強会@tokyo 資料
 
Rubyと機械学習の現状
Rubyと機械学習の現状Rubyと機械学習の現状
Rubyと機械学習の現状
 
クリーンアーキテクチャ学んでみた
クリーンアーキテクチャ学んでみたクリーンアーキテクチャ学んでみた
クリーンアーキテクチャ学んでみた
 
mruby for embedded systems
mruby for embedded systemsmruby for embedded systems
mruby for embedded systems
 
再帰、漸化式、差分方程式とアルゴリズム Gx#20
再帰、漸化式、差分方程式とアルゴリズム   Gx#20再帰、漸化式、差分方程式とアルゴリズム   Gx#20
再帰、漸化式、差分方程式とアルゴリズム Gx#20
 

ランダムフォレスト回帰