LoginSignup
15
7

More than 5 years have passed since last update.

Uplift Modeling用Pythonパッケージ「CausalLift」を作りました。

Last updated at Posted at 2019-04-10

機械学習モデルで反応する顧客を予測して広告、勧誘等のキャンペーンを実施したいという要望はよくありますが、単純に予測モデルを作るだけだと、キャンペーン無しでも反応していたはずの顧客へも実施することになり、ムダが発生します。

効率的にキャンペーン対象顧客を選ぶのに使えるUplift Modeling用Python/ Rパッケージは既にありますが、Qini等の専門的な評価指標は関係者に説明しづらいという問題がありました。

そこで、ビジネスの実務で使えるように設計したUplift Modeling用Pythonパッケージを作りました。

pipでインストール可能です。

pip install causallift

A/B Testではないデータ(観察データ)でも使えます。

できること:

  1. 傾向スコアを計算(A/B Testでないデータの場合)
  2. IPW(傾向スコアの逆数で重み付け)で補正した2つのXGBoostモデルからUpliftスコア(CATE, ITE)を計算
  3. Upliftスコアに従ってキャンペーンを実施すればConversion Rate(購入率等)が何倍になるかを計算

シミュレーション観察データかLalondeデータを使ったサンプルコードをColab上で試せます。
https://colab.research.google.com/github/Minyus/causallift/blob/master/examples/CausalLift_example.ipynb

[為になった資料: 因果推論]

「原因と結果」の経済学(https://www.amazon.co.jp/dp/B06X6GJYWF/ref=dp-kindle-redirect?_encoding=UTF8&btkr=1)

データ分析の不思議、シンプソンのパラドックスを統計的因果推論から考える
https://www.krsk-phs.com/entry/simpsonparadox

[為になった資料: 因果推論、傾向スコア、IPW]

岩波データサイエンス Vol.3 (https://www.amazon.co.jp/dp/B0764942HW/ref=dp-kindle-redirect?_encoding=UTF8&btkr=1)

統計的因果推論(2): 傾向スコア(Propensity Score)の初歩をRで実践してみる
https://tjo.hatenablog.com/entry/2016/10/05/190000

[為になった資料: Uplift Modeling]

『仕事ではじめる機械学習』(https://www.amazon.co.jp/%E4%BB%95%E4%BA%8B%E3%81%A7%E3%81%AF%E3%81%98%E3%82%81%E3%82%8B%E6%A9%9F%E6%A2%B0%E5%AD%A6%E7%BF%92-%E6%9C%89%E8%B3%80-%E5%BA%B7%E9%A1%95/dp/4873118255) 第9章

Uplift Modeling用のパッケージtools4upliftを使ってみた
http://kamonohashiperry.com/archives/2197

[為になった資料:観察データでのUplift Modeling]

傾向スコアを用いて観察データからUpliftをモデリングする
https://qiita.com/usaito/items/f713d93732db82696a76

EconMLパッケージの紹介 (meta-learners編)
https://usaito.hatenablog.com/entry/2019/04/07/205756

15
7
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
15
7