Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
決定木を使った回帰の仕組み
Search
K_DM
October 23, 2021
Programming
0
210
決定木を使った回帰の仕組み
回帰木でどのように分岐を作るかを説明します。
動画での説明:
https://youtu.be/E5WOgzoEs1M
K_DM
October 23, 2021
Tweet
Share
More Decks by K_DM
See All by K_DM
主成分分析(PCA)の仕組み
k_study
0
180
X-meansの仕組み
k_study
0
1.7k
勾配ブースティングの仕組み
k_study
0
84
k-meansクラスタリングの仕組み
k_study
0
220
アンサンブル学習① ランダムフォレストの仕組み
k_study
0
88
決定木に含まれるパラメタによる事前剪定と事後剪定
k_study
0
590
線形回帰② 正則化と過学習
k_study
0
480
外れ値とHuber(フーバー)損失
k_study
0
990
木構造1~決定木の仕組み(分類)
k_study
0
150
Other Decks in Programming
See All in Programming
KotlinConf 2025 現地で感じたServer-Side Kotlin
n_takehata
1
210
単体テストの始め方/作り方
toms74209200
0
440
Using AI Tools Around Software Development
inouehi
0
1.2k
Cursor Meetup Tokyo ゲノミクスとCursor: 進化と制約のあいだ
koido
2
990
Haskell でアルゴリズムを抽象化する / 関数型言語で競技プログラミング
naoya
17
4.3k
生成AIで日々のエラー調査を進めたい
yuyaabo
0
540
Beyond Portability: Live Migration for Evolving WebAssembly Workloads
chikuwait
0
350
Team topologies and the microservice architecture: a synergistic relationship
cer
PRO
0
140
AIコーディング道場勉強会#2 君(エンジニア)たちはどう生きるか
misakiotb
1
180
從零到一:搭建你的第一個 Observability 平台
blueswen
1
900
Enterprise Web App. Development (2): Version Control Tool Training Ver. 5.1
knakagawa
1
110
Elixir で IoT 開発、 Nerves なら簡単にできる!?
pojiro
1
120
Featured
See All Featured
Faster Mobile Websites
deanohume
307
31k
Dealing with People You Can't Stand - Big Design 2015
cassininazir
367
26k
YesSQL, Process and Tooling at Scale
rocio
172
14k
Reflections from 52 weeks, 52 projects
jeffersonlam
351
20k
GitHub's CSS Performance
jonrohan
1031
460k
Learning to Love Humans: Emotional Interface Design
aarron
273
40k
Exploring the Power of Turbo Streams & Action Cable | RailsConf2023
kevinliebholz
32
5.9k
Practical Orchestrator
shlominoach
188
11k
Building Flexible Design Systems
yeseniaperezcruz
328
39k
Gamification - CAS2011
davidbonilla
81
5.3k
Fashionably flexible responsive web design (full day workshop)
malarkey
407
66k
Unsuck your backbone
ammeep
671
58k
Transcript
木構造2 木構造2 決定木 (回帰) 決定木 (回帰)
決定木の各部分の名称 条件分岐を組合せて結論を導く木構造の予測モデル 根(root node/the root) 気温は25℃超えてますか? 夏 湿度は50%超えてますか? No Yes
気温は15℃超えてますか? クーラーをつけてますか? 夏 春 春 春 No Yes No Yes No Yes 枝(branch) ノード(node) 葉(leaves/leaf nodes) 深さ(depth) 前回までのおさらい
今回の内容 •データの説明 •回帰木 •変数が複数ある場合の回帰木 •まとめ 決定木を用いた回帰の方法について説明します
説明のために使用するデータ 気温から、その日のアイスの売上を予測したい 気温 アイスの売上
気温 アイスの売上 寒すぎてこたつで アイス食べるから増える 売り切れてこれ以上は売れない 気温が上がれば上がるほど売上が増える 説明のために使用するデータ 気温から、その日のアイスの売上を予測したい
線形モデルをフィットさせるのは難しい 最小二乗法で線形回帰をした場合は殆どのデータで予測ができず、解釈も難しい 気温 アイスの売上 気温が0度以下だと売上がマイナス? 気温が上がれば∞に売上も増える?
回帰の決定木 データをいくつかの区画に区切り、区画ごとの平均値を出す 気温 アイスの売上 気温は10℃超えてる? 50 気温は20℃超えてる? No Yes 気温は0℃超えてる?
25 3 10 No Yes No Yes 0 10 20 50 25 10 3
回帰の決定木 どのような場合にどんな値になるかのルールを簡単に作成できる 気温 アイスの売上 気温は10℃超えてる? 50 気温は20℃超えてる? No Yes 気温は0℃超えてる?
25 3 10 No Yes No Yes 0 10 20 50 25 10 3
回帰の決定木の分岐の良さを比較したい 様々な分岐を作ることができるので、分岐の良さの基準をつくりたい 前回までのおさらい 分類木ではきれいに分類できているか(不純度, Impurity)を基準に分岐を決めていた 回帰でもきれいに数値を当てられているか(誤差)を基準に分岐を決めたい
分岐を一つ決めた時、木がどれくらいフィットしているか評価 分岐の前後の平均値との二乗誤差を計算します 気温 アイスの売上 -3 10 30 の領域の平均値 = 30
の領域の平均値 = 10 -3で分岐した時の誤差 = (10 − 10)2+ (10 − 30)2 + (10 − 30)2 + … + (50 − 30)2
… 分岐を一つ決めた時、木がどれくらいフィットしているか評価 分岐の前後の平均値との二乗誤差を計算します 分岐の基準値 誤差 10 誤差が最小になる点で 分岐を作る
特徴が複数ある場合も同じ要領で分岐を決める 特徴ごとの最良の分岐点を求め、その中で最小の誤差の分岐を選択します 気温 湿度 アイス売上 10 40 10 15 50
20 20 90 40 … … … 分岐の基準値 誤差 10 分岐の基準値 誤差 40 20 35 より誤差が少ない 湿度40%を基準に分岐を作る 気温で分岐を移動した時の誤差 湿度で分岐を移動した時の誤差 湿度は40%超えてる? No Yes
分岐を決定する手順を繰り返せば木が完成 ①誤差が最小になる区切りを見つけて、分岐を作る 気温 アイスの売上 気温は10℃超えてる? No Yes 10 50 25
10 3
分岐を決定する手順を繰り返せば木が完成 ②Yesに該当するデータで、誤差が最小になる分岐を作る 気温 アイスの売上 気温は10℃超えてる? No Yes 0 10 50
25 10 3 気温は0℃超えてる? 3 10 No Yes
分岐を決定する手順を繰り返せば木が完成 ③Noに該当するデータで、誤差が最小になる分岐を作る 気温 アイスの売上 気温は10℃超えてる? 50 気温は20℃超えてる? No Yes 気温は0℃超えてる?
25 3 10 No Yes No Yes 10 20 50 25 10 3
実験! じ っ け ん
実際に動かしてみる 2つの特徴から数値が決まる人工的なデータを作成 大 小
実際に動かしてみる 区画ごとの平均値が出力される木が作成できたことが確認できる Scikit-learn と https://github.com/parrt/dtreeviz を使用して可視化しています コードは概要欄のリンクから参照してください
まとめ 回帰木について説明しました •回帰木では区画ごとの平均値を出力する木を作成する •分岐の基準点をずらしながら誤差をプロットし、最小になる点を選択することで決定 する •作成される予測モデルは軸に並行な境界を持つ