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
180
決定木を使った回帰の仕組み
回帰木でどのように分岐を作るかを説明します。
動画での説明:
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
140
X-meansの仕組み
k_study
0
1.2k
勾配ブースティングの仕組み
k_study
0
49
k-meansクラスタリングの仕組み
k_study
0
170
アンサンブル学習① ランダムフォレストの仕組み
k_study
0
57
決定木に含まれるパラメタによる事前剪定と事後剪定
k_study
0
460
線形回帰② 正則化と過学習
k_study
0
370
外れ値とHuber(フーバー)損失
k_study
0
820
木構造1~決定木の仕組み(分類)
k_study
0
110
Other Decks in Programming
See All in Programming
qmuntal/stateless のススメ
sgash708
0
120
Hotwire or React? ~Reactの録画機能をHotwireに置き換えて得られた知見~ / hotwire_or_react
harunatsujita
9
4.1k
ピラミッド、アイスクリームコーン、SMURF: 自動テストの最適バランスを求めて / Pyramid Ice-Cream-Cone and SMURF
twada
PRO
9
1k
プロジェクト新規参入者のリードタイム短縮の観点から見る、品質の高いコードとアーキテクチャを保つメリット
d_endo
1
1k
Vaporモードを大規模サービスに最速導入して学びを共有する
kazukishimamoto
4
4.3k
offers_20241022_imakiire.pdf
imakurusu
2
360
僕がつくった48個のWebサービス達
yusukebe
18
17k
カスタムしながら理解するGraphQL Connection
yanagii
1
1.2k
LLM生成文章の精度評価自動化とプロンプトチューニングの効率化について
layerx
PRO
2
140
Kotlin2でdataクラスの copyメソッドを禁止する/Data class copy function to have the same visibility as constructor
eichisanden
1
140
OpenTelemetryでRailsのパフォーマンス分析を始めてみよう(KoR2024)
ymtdzzz
4
1.6k
Go言語でターミナルフレンドリーなAIコマンド、afaを作った/fukuokago20_afa
monochromegane
2
140
Featured
See All Featured
The Success of Rails: Ensuring Growth for the Next 100 Years
eileencodes
43
6.6k
Learning to Love Humans: Emotional Interface Design
aarron
272
40k
Keith and Marios Guide to Fast Websites
keithpitt
408
22k
Automating Front-end Workflow
addyosmani
1365
200k
Fight the Zombie Pattern Library - RWD Summit 2016
marcelosomers
231
17k
A Philosophy of Restraint
colly
203
16k
KATA
mclloyd
29
13k
Bash Introduction
62gerente
608
210k
Art, The Web, and Tiny UX
lynnandtonic
296
20k
Dealing with People You Can't Stand - Big Design 2015
cassininazir
364
22k
Fantastic passwords and where to find them - at NoRuKo
philnash
50
2.8k
I Don’t Have Time: Getting Over the Fear to Launch Your Podcast
jcasabona
27
1.9k
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 を使用して可視化しています コードは概要欄のリンクから参照してください
まとめ 回帰木について説明しました •回帰木では区画ごとの平均値を出力する木を作成する •分岐の基準点をずらしながら誤差をプロットし、最小になる点を選択することで決定 する •作成される予測モデルは軸に並行な境界を持つ