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
190
X-meansの仕組み
k_study
0
1.8k
勾配ブースティングの仕組み
k_study
0
98
k-meansクラスタリングの仕組み
k_study
0
240
アンサンブル学習① ランダムフォレストの仕組み
k_study
0
91
決定木に含まれるパラメタによる事前剪定と事後剪定
k_study
0
640
線形回帰② 正則化と過学習
k_study
0
520
外れ値とHuber(フーバー)損失
k_study
0
1.1k
木構造1~決定木の仕組み(分類)
k_study
0
160
Other Decks in Programming
See All in Programming
アメ車でサンノゼを走ってきたよ!
s_shimotori
0
210
非同期jobをtransaction内で 呼ぶなよ!絶対に呼ぶなよ!
alstrocrack
0
610
uniqueパッケージの内部実装を支えるweak pointerの話
magavel
0
960
CSC509 Lecture 05
javiergs
PRO
0
300
登壇は dynamic! な営みである / speech is dynamic
da1chi
0
240
育てるアーキテクチャ:戦い抜くPythonマイクロサービスの設計と進化戦略
fujidomoe
1
170
理論と実務のギャップを超える
eycjur
0
120
Railsだからできる 例外業務に禍根を残さない 設定設計パターン
ei_ei_eiichi
0
420
Model Pollution
hschwentner
1
190
Web フロントエンドエンジニアに開かれる AI Agent プロダクト開発 - Vercel AI SDK を観察して AI Agent と仲良くなろう! #FEC余熱NIGHT
izumin5210
3
480
私達はmodernize packageに夢を見るか feat. go/analysis, go/ast / Go Conference 2025
kaorumuta
2
510
CSC305 Lecture 03
javiergs
PRO
0
240
Featured
See All Featured
Making Projects Easy
brettharned
119
6.4k
Bootstrapping a Software Product
garrettdimon
PRO
307
110k
How To Stay Up To Date on Web Technology
chriscoyier
791
250k
4 Signs Your Business is Dying
shpigford
185
22k
Optimising Largest Contentful Paint
csswizardry
37
3.4k
The Invisible Side of Design
smashingmag
301
51k
I Don’t Have Time: Getting Over the Fear to Launch Your Podcast
jcasabona
33
2.5k
How GitHub (no longer) Works
holman
315
140k
The Psychology of Web Performance [Beyond Tellerrand 2023]
tammyeverts
49
3.1k
A designer walks into a library…
pauljervisheath
209
24k
Responsive Adventures: Dirty Tricks From The Dark Corners of Front-End
smashingmag
252
21k
Music & Morning Musume
bryan
46
6.8k
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 を使用して可視化しています コードは概要欄のリンクから参照してください
まとめ 回帰木について説明しました •回帰木では区画ごとの平均値を出力する木を作成する •分岐の基準点をずらしながら誤差をプロットし、最小になる点を選択することで決定 する •作成される予測モデルは軸に並行な境界を持つ