Slide 1

Slide 1 text

0 Gurobi Machine Learning 1 因果推論とアップリフトモデリング 2023-06-16 第49回NearMe技術勉強会 @yujiosaka

Slide 2

Slide 2 text

1 機械学習

Slide 3

Slide 3 text

2 既知のデータを学習することで、未知のデータについて予測すること 機械学習のおさらい x1とx2の2 変数だけを使って、 メールをSPAMかHAMかに分類したい ● x1: 文字化けの数 ● x2: 文中の「おめでとう」の回数 として、以下の分類ができる f(x) > 0: SPAM f(x) < 0: HAM

Slide 4

Slide 4 text

3 教師あり ● 分類 ○ スパムフィルタ ○ 画像認識 ● 回帰 ○ 株価予測 ○ 不動産価格予測 教師なし ● クラスタリング ● GAN(Generative Adversarial Netrowk) 機械学習の分類

Slide 5

Slide 5 text

4 ● 治療を行うことで患者が回復するかどうか ● 奨学金を与えることで入学率が向上するかどうか ● 割引することで売上が伸ばせるかどうか ● etc. リスク コスト コスト 介入操作が行われる分野 因果推論は、リスクやコストを伴う介入を行う分野とその研究 リスクやコストを最小限に抑えつつ、効果を最大化させたい

Slide 6

Slide 6 text

5 普通の予測と何が違うのか?

Slide 7

Slide 7 text

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

Slide 8

Slide 8 text

7 アップリフトモデリング

Slide 9

Slide 9 text

8 対象を4章限に分類 この象限内の対象を分類したい

Slide 10

Slide 10 text

9 ● 「勉強したらテストに合格した」という観測からは 「勉強しなかったらテストに合格しなかった」のかはわからない ● 後からこの学生は、「Persuadable」か「Sure Things」かは分類できない ● ABテストを行えば、統計的に分類することは可能 ● 実用的には、「Persuadable」の分類予測が行えれば十分なことが多い 解説 ABテストを必須としない方法も研究されている 勉強したから合格した 勉強してもしなくても合格した 誰に勉強させる(Treatment)べきかを知りたい

Slide 11

Slide 11 text

10 勉強した学生(Treated)としなかった学生(Control)の2つのグループにランダムに分ける ①勉強した学生(Treated)を対象に、  過去の成績等のデータから「(勉強した場合の)合格率」を予想するモデルを構築 ②勉強しなかった学生(Control)を対象に、  過去の成績等のデータから「(勉強しなかった場合の)合格率」を予想するモデルを構築 2モデル 過去の成績が分かっている新たな学生に対し、「① - ② > 0」であれば、 その学生は勉強することで合格率が上がるだろうと予測できる コストの高い勉強(塾に通わせる等)であれば、「① - ②」の差が より大きい学生だけに介入するといった応用もできる

Slide 12

Slide 12 text

11 ● パラメータチューニングが難しくなる ● 予測時の計算量が2倍になる ● 特徴量の解釈が難しくなる 2モデルの問題点 → それぞれ異なるチューニングをして問題ないかは判断が難しい → 一度実行すればいい学習と違って、予測時の計算量は直接サーバーコストに影響する → 2つの学習結果で全く異なる特徴が抽出されてしまう

Slide 13

Slide 13 text

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) // どんな分類器でも可

Slide 14

Slide 14 text

13 介入の回数や予算に制約がある場合に効果を最大化させたい 例: 試験に合格したn人の学生に対して、奨学金を配ることで入学する学生数を最大化させたい。 ただし、奨学金には予算上限があり、1人あたり250万円以内、n*0.2人までにしか配れない。 どの学生に対して奨学金をどれだけ配るべきか? アップリフトモデリングが答えてくれない問題 数理最適化と機械学習の統合が必要 → 次回 Gurobi Machine Learning を解説

Slide 15

Slide 15 text

14 ● Decision trees for uplift modeling 参考資料

Slide 16

Slide 16 text

15 Thank you