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
Gurobi Machine Learning 1 因果推論とアップリフトモデリング
Search
NearMeの技術発表資料です
June 16, 2023
Research
0
150
Gurobi Machine Learning 1 因果推論とアップリフトモデリング
NearMeの技術発表資料です
June 16, 2023
Tweet
Share
More Decks by NearMeの技術発表資料です
See All by NearMeの技術発表資料です
OR-Toolsの中⾝ -VRPの解法について-
nearme_tech
0
48
GTFSのデータを Streamlitで可視化してみた
nearme_tech
0
38
Offset / Cursor Paginationについて
nearme_tech
2
77
⼤規模⾔語モデルの拡張(RAG)が 終わったかも知れない件について
nearme_tech
23
15k
VRPを深層強化学習で解く
nearme_tech
0
71
Let’s go monorepo - intro to Nx.dev
nearme_tech
0
23
Dynamic Vehicle Routing のシミュレーションを Streamlitで作ってみた
nearme_tech
0
65
ログ監視ツールについて調べてみた
nearme_tech
0
59
(インターン生が大学院で行なっている)研究紹介
nearme_tech
0
48
Other Decks in Research
See All in Research
Generative Spoken Dialogue Language Modeling [対話論文読み会@電通大]
yuta0306
1
140
Introduction of NII S. Koyama's Lab (AY2024)
skoyamalab
0
150
Accurate Method and Variable Tracking in Commit History
tsantalis
0
280
VAR モデルによる OSS プロジェクト同士が生存性に与える 影響の分析
noppoman
0
140
サウナでのプロジェクションマッピングの可能性の検討 / EC71koizumi
yumulab
0
210
リサーチに組織を巻き込むための「準備8割」の話
terasho
0
470
Target trial emulationの概要
shuntaros
2
1.2k
デフスポーツにおける支援技術 〜競技特性・ルールと技術との関係〜
slab
0
230
Source Code Diff Revolution (JetBrains Open Reading Club)
tsantalis
0
290
Azure Arc-enabled Serversを利用した ハイブリッド・マルチクラウド環境の管理 / Managing Hybrid Multi-cloud Environments with Azure Arc-enabled Servers
nttcom
0
220
20240127_熊本から今いちど真面目に都市交通~めざせ「車1割削減、渋滞半減、公共交通2倍」~ 全国路面電車サミット2024宇都宮
trafficbrain
1
680
VRChat と cluster ワールドの違い-その1-
hidetobara
0
100
Featured
See All Featured
How To Stay Up To Date on Web Technology
chriscoyier
782
250k
I Don’t Have Time: Getting Over the Fear to Launch Your Podcast
jcasabona
22
1.6k
Templates, Plugins, & Blocks: Oh My! Creating the theme that thinks of everything
marktimemedia
20
1.8k
Building a Modern Day E-commerce SEO Strategy
aleyda
22
6.4k
How to Create Impact in a Changing Tech Landscape [PerfNow 2023]
tammyeverts
21
1.6k
KATA
mclloyd
16
12k
Making the Leap to Tech Lead
cromwellryan
125
8.5k
Keith and Marios Guide to Fast Websites
keithpitt
408
22k
GitHub's CSS Performance
jonrohan
1025
450k
Raft: Consensus for Rubyists
vanstee
133
6.3k
Practical Orchestrator
shlominoach
183
9.7k
No one is an island. Learnings from fostering a developers community.
thoeni
16
2.1k
Transcript
0 Gurobi Machine Learning 1 因果推論とアップリフトモデリング 2023-06-16 第49回NearMe技術勉強会 @yujiosaka
1 機械学習
2 既知のデータを学習することで、未知のデータについて予測すること 機械学習のおさらい x1とx2の2 変数だけを使って、 メールをSPAMかHAMかに分類したい • x1: 文字化けの数 •
x2: 文中の「おめでとう」の回数 として、以下の分類ができる f(x) > 0: SPAM f(x) < 0: HAM
3 教師あり • 分類 ◦ スパムフィルタ ◦ 画像認識 • 回帰
◦ 株価予測 ◦ 不動産価格予測 教師なし • クラスタリング • GAN(Generative Adversarial Netrowk) 機械学習の分類
4 • 治療を行うことで患者が回復するかどうか • 奨学金を与えることで入学率が向上するかどうか • 割引することで売上が伸ばせるかどうか • etc. リスク
コスト コスト 介入操作が行われる分野 因果推論は、リスクやコストを伴う介入を行う分野とその研究 リスクやコストを最小限に抑えつつ、効果を最大化させたい
5 普通の予測と何が違うのか?
6 因果推論の根本問題 https://ja.wikipedia.org/wiki/%E7%9B%B8%E9%96%A2%E9%96%A2%E4%BF%82%E3%81%A8%E5%9B%A0%E6%9E%9C% E9%96%A2%E4%BF%82
7 アップリフトモデリング
8 対象を4章限に分類 この象限内の対象を分類したい
9 • 「勉強したらテストに合格した」という観測からは 「勉強しなかったらテストに合格しなかった」のかはわからない • 後からこの学生は、「Persuadable」か「Sure Things」かは分類できない • ABテストを行えば、統計的に分類することは可能 •
実用的には、「Persuadable」の分類予測が行えれば十分なことが多い 解説 ABテストを必須としない方法も研究されている 勉強したから合格した 勉強してもしなくても合格した 誰に勉強させる(Treatment)べきかを知りたい
10 勉強した学生(Treated)としなかった学生(Control)の2つのグループにランダムに分ける ①勉強した学生(Treated)を対象に、 過去の成績等のデータから「(勉強した場合の)合格率」を予想するモデルを構築 ②勉強しなかった学生(Control)を対象に、 過去の成績等のデータから「(勉強しなかった場合の)合格率」を予想するモデルを構築 2モデル 過去の成績が分かっている新たな学生に対し、「① - ②
> 0」であれば、 その学生は勉強することで合格率が上がるだろうと予測できる コストの高い勉強(塾に通わせる等)であれば、「① - ②」の差が より大きい学生だけに介入するといった応用もできる
11 • パラメータチューニングが難しくなる • 予測時の計算量が2倍になる • 特徴量の解釈が難しくなる 2モデルの問題点 → それぞれ異なるチューニングをして問題ないかは判断が難しい
→ 一度実行すればいい学習と違って、予測時の計算量は直接サーバーコストに影響する → 2つの学習結果で全く異なる特徴が抽出されてしまう
12 変数Zを導入して、教師として学習 Pythonコード例 1モデル // 学習データ df = pd.DataFrame({ 'y':
[1, 0, 1, 0], //合格したか?(response) 't': [1, 1, 0, 0], // 勉強したか?(treatment) 'x1': [0.2, 0.8, 0.3, 0.4], 'x2': [0.4, 0.4, 0.2, 0.2] }) x = df[['x1', 'x2']] z = 1 - (df['y'] ^ df['t']) // z = [1, 0, 0, 1] model.fit(x, z) // どんな分類器でも可
13 介入の回数や予算に制約がある場合に効果を最大化させたい 例: 試験に合格したn人の学生に対して、奨学金を配ることで入学する学生数を最大化させたい。 ただし、奨学金には予算上限があり、1人あたり250万円以内、n*0.2人までにしか配れない。 どの学生に対して奨学金をどれだけ配るべきか? アップリフトモデリングが答えてくれない問題 数理最適化と機械学習の統合が必要 → 次回
Gurobi Machine Learning を解説
14 • Decision trees for uplift modeling 参考資料
15 Thank you