Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
ゼロから作るアンサンブル学習(第1回)
Search
tatamiya
March 28, 2019
Technology
200
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
ゼロから作るアンサンブル学習(第1回)
tatamiya
March 28, 2019
More Decks by tatamiya
See All by tatamiya
サイコロで理解する統計的仮説検定の考え方
tatamiya
5
3.4k
状態空間時系列モデルで見た R と Python の比較 〜 KFAS と statsmodels 〜
tatamiya
1
1.9k
第1回沖本計量時系列分析輪読
tatamiya
1
750
ゼロから作るアンサンブル学習 第2回資料
tatamiya
0
380
20190409_FasterPythonMeetUp_TAMIYA
tatamiya
0
310
Other Decks in Technology
See All in Technology
Lambda MicroVMsは常駐サーバーの代わりに なるか? Kiro Crew を動かして検証してみた / Kiro Crew on Lambda MicroVMs
k_adachi_01
2
340
KanaAI
shreyas1009
0
130
AI駆動開発で仕様はどこまで書くべきか? ― 人とAIの責務境界から考える開発プロセスの実践
takahiromatsui
1
250
「今盗んで、後で解く」に備える ― AWSのポスト量子暗号入門
yama3133
2
280
スキルを作る、その前に!複数人で使われるスキルを 作るためのプロセス
junkifurukawa
1
120
spanner-autoscalerに学ぶ CRD設計パターン 〜自動化と緊急時対応を両立する Kubernetesコントローラーの作り方〜
tkuchiki
0
210
AIエージェント時代のPlatform as a Product —— テックリードがPdMとして回す発見・導入・計測 / Platform as a Product in the AI Agent Era
toshi0607
1
530
個別開発で終わらせない。 現場の課題をプロダクトの強さに変える StockmarkのFDE
ktkrhr
0
440
Argo CDとAtlantisで実現するインフラ管理のセルフサービス化──小規模SREチームで支えるプラットフォーム
cassius7
0
250
Meet AgentCore Identity Consent Portal
hironobuiga
2
140
The seven pitfalls of AI (revised version)
ufried
0
140
HolmesGPTで始めるSREエージェント入門!プラットフォームの障害調査はAIにお任せ 〜
leveragestech
PRO
0
120
Featured
See All Featured
Digital Projects Gone Horribly Wrong (And the UX Pros Who Still Save the Day) - Dean Schuster
uxyall
1
3.2k
The Illustrated Children's Guide to Kubernetes
chrisshort
51
53k
A Modern Web Designer's Workflow
chriscoyier
699
190k
Producing Creativity
orderedlist
PRO
348
41k
Future Trends and Review - Lecture 12 - Web Technologies (1019888BNR)
signer
PRO
0
3.8k
How to Talk to Developers About Accessibility
jct
2
560
The Straight Up "How To Draw Better" Workshop
denniskardys
239
140k
個人開発の失敗を避けるイケてる考え方 / tips for indie hackers
panda_program
123
22k
VelocityConf: Rendering Performance Case Studies
addyosmani
331
25k
How To Speak Unicorn (iThemes Webinar)
marktimemedia
1
590
Become a Pro
speakerdeck
PRO
31
6.3k
State of Search Keynote: SEO is Dead Long Live SEO
ryanjones
0
290
Transcript
ゼロから作るアンサンブル学習 ~OSSに学ぶ機械学習の実装~ 第1回 決定⽊・ランダムフォレストの理解と実装 たみや@tatatatatamiya
このセミナーについて u ⽬的 u アルゴリズムの理解 u OSSから良い実装を学ぶ u スケジュール u
第1回(3/28 本⽇) : 決定⽊・ランダムフォレストの理解と実装 u 第2回(4⽉下旬) : scikit-learnの読解 u 第3回(5⽉下旬) : 勾配ブースティング〜XGBoost, LightGBM
アルゴリズムの概要 - 決定⽊ - ランダムフォレスト
決定⽊
決定⽊とは︖ プロフィール 年齢 33歳 ⾝⻑ 168cm 体重 65kg 収⼊ 700万円
!? ⾝⻑ > 170cm? 体重 > 70kg? 体重 > 100kg? 年齢 >30? 収⼊ >1000万円? No No Yes Yes No Yes No Yes No Yes モ テ ⾮ モ テ モ テ ⾮ モ テ モ テ ⾮ モ テ 閾値を設けてYes/Noで振り分けていく モテる︖モテない︖ 課題 - どの特徴量で切る︖ - 閾値はいくつにする︖
分類⽅法の決め⽅ 年齢 33歳 32歳 54歳 45歳 24歳 27歳 35歳 48歳
38歳 ⾝⻑ 168cm 165cm 173cm 155cm 175cm 160cm 165cm 180cm 160cm 体重 70kg 50kg 70kg 55kg 65kg 130kg 80kg 75kg 60kg 収⼊ 400万円 600万円 550万円 800万円 300万円 500万円 250万円 700万円 1500万円 モ テ モ テ モ テ ⾮ モ テ ⾮ モ テ モ テ モ テ ⾮ モ テ ⾮ モ テ <理想的なデータの分割> データをある特徴量のある閾値で⼆分割した時, それぞれの断⽚が1種類のクラスのみから構成されている あらかじめラベルづけされたデータを⼊れて学習をおこなう
分割の判断指標 u 「どれだけ単⼀クラス構成に近いか」を不純度として定量化する u データ中に占めるクラスの構成⽐率を# としたとき,全クラス数をとして, u Gini係数 :∑#&' (
1 − # # = 1 − ∑#&' ( # , u Entropy : − ∑#&' ( # log # u いずれの指標も, u ある⼀つのクラスだけに偏っている時,最⼩値0をとる u #∗ = 1, # = 0 ( ≠ ∗) u 全クラスの構成⽐が等しい時,最⼤値log をとる u # = 1/ u 不純度が最⼩になる分割特徴量・閾値を探索する
分割の判断指標 モ テ モ テ モ テ ⾮ モ テ
⾮ モ テ モ テ モ テ ⾮ モ テ ⾮ モ テ 収⼊ 250万円 300万円 400万円 500万円 550万円 600万円 700万円 800万円 1500万円 収⼊ ≦ 500万円 モテ = 1 4 , ⾮モテ = 3 4 ℎ; = 1 − 1 4 , − 3 4 , = 3/8 収⼊ > 500万円 モテ = 1 5 , ⾮モテ = 4 5 ℎ> = 1 − 1 5 , − 4 5 , = 8 25 A = 4 9 ℎ; + 5 9 ℎ> = 0.3444 … Gini係数の場合 …ここで分けると良さそう︖
分割の判断指標 モ テ モ テ モ テ ⾮ モ テ
⾮ モ テ モ テ モ テ ⾮ モ テ ⾮ モ テ 年齢 35歳 24歳 33歳 27歳 54歳 32歳 48歳 45歳 38歳 ⾝⻑ 165cm 175cm 168cm 160cm 170cm 165cm 180cm 155cm 160cm 体重 80kg 65kg 70kg 130kg 70kg 50kg 75kg 55kg 60kg 収⼊ 250万円 300万円 400万円 500万円 550万円 600万円 700万円 800万円 1500万円 ℎ; = 0.444 … , ℎ> = 0, A = F G ℎ; + H G ℎ> = 0.296 … < 0.3444 むしろ,今回は以下の分割が最適︓
どこで分割を⽌めるか︖ モ テ モ テ モ テ ⾮ モ テ
⾮ モ テ モ テ モ テ ⾮ モ テ ⾮ モ テ 年齢 35歳 24歳 33歳 27歳 54歳 32歳 48歳 45歳 38歳 ⾝⻑ 165cm 175cm 168cm 160cm 170cm 165cm 180cm 155cm 160cm 体重 80kg 65kg 70kg 130kg 70kg 50kg 75kg 55kg 60kg 収⼊ 250万円 300万円 400万円 500万円 550万円 600万円 700万円 800万円 1500万円 年収 > 600万円? No Yes モ テ 年齢 27歳 35歳 32歳 33歳 54歳 24歳 ⾝⻑ 160cm 165cm 165cm 168cm 170cm 175cm 体重 130kg 80kg 50kg 70kg 70kg 65kg 収⼊ 500万円 250万円 600万円 400万円 550万円 300万円 ⾮ モ テ モ テ モ テ ⾮ モ テ ⾮ モ テ ⾮ モ テ ⾝⻑ >168cm? Yes モ テ ⾮ モ テ 不純度が最⼩になる特徴量・閾値の組み合わせを 探して分割 ↓ 分割後のデータをさらに分割していく <停⽌条件> - 不純度の減少量が⼀定値以下 - 分割後のデータ数が⼀定値以下 - 分割の「深さ」が⼀定値以上
ランダムフォレスト
ランダムフォレスト概要 u 決定⽊の⽋点 u 学習データに強く依存する u ⽊を⼤量に集めて多数決を⾏う u 決定⽊よりは性能の劣る「弱学習器」を⼤量に作る u
弱学習器の構築指針 u 学習に使うデータを変える u ブートストラップサンプリング u 分割につかう特徴量を変える u 全特徴量は使わず,⼀部のみ使⽤する u 分割ごとにランダムに選択する
ブートストラップサンプリング u データをランダムに選択して新しいデータセットを量産する u 重複を許す(復元抽出) モ テ ⾮ モ テ
⾮ モ テ モ テ モ テ ⾮ モ テ ⾮ モ テ ⾮ モ テ ⾮ モ テ モ テ モ テ モ テ ⾮ モ テ モ テ モ テ モ テ ⾮ モ テ ⾮ モ テ ・・・
特徴量のランダム選択 u 分割の際に,⼀部のランダムに選んだ特徴量のみを⾒る モ テ ⾮ モ テ ⾮ モ
テ モ テ モ テ ⾮ モ テ ⾮ モ テ ⾮ モ テ ⾮ モ テ 年齢 24歳 27歳 33歳 45歳 54歳 35歳 32歳 35歳 27歳 ⾝⻑ 175cm 160cm 168cm 155cm 170cm 165cm 165cm 165cm 160cm 体重 65kg 130kg 70kg 55kg 70kg 80kg 50kg 80kg 130kg 収⼊ 300万円 500万円 400万円 800万円 550万円 250万円 600万円 250万円 500万円