Classic approaches of Uplift modelling in scikit-learn style in python
Project description
scikit-uplift
scikit-uplift is a Python module for classic approaches for uplift modelling built on top of scikit-learn.
Quick Start
See the RetailHero tutorial notebook for details.
Train and predict uplift model
# import approaches
from sklift.models import SoloModel, ClassTransformation, TwoModels
# import any estimator adheres to scikit-learn conventions.
from catboost import CatBoostClassifier
# define approach
sm = SoloModel(CatBoostClassifier(verbose=100, random_state=777))
# fit model
sm = sm.fit(X_train, y_train, treat_train, estimator_fit_params={{'plot': True})
# predict uplift
uplift_sm = sm.predict(X_val)
Evaluate your uplift model
# import metrics to evaluate your model
from sklift.metrics import auqc, auuc, uplift_at_k
# Uplift@30%
sm_uplift_at_k = uplift_at_k(y_true=y_val, uplift=uplift_sm, treatment=treat_val, k=0.3)
# Area Under Qini Curve
sm_auqc = auqc(y_true=y_val, uplift=uplift_sm, treatment=treat_val)
# Area Under Uplift Curve
sm_auuc = auuc(y_true=y_val, uplift=uplift_sm, treatment=treat_val)
Vizualize the results
# import vizualisation tools
from sklift.viz import plot_uplift_probs, plot_uplift_qini_curves
# get conditional probabilities of performing a target action
# with interaction for each object
sm_trmnt_proba = sm.trmnt_proba_
# get conditional probabilities of performing a target action
# without interaction for each object
sm_ctrl_proba = sm.ctrl_proba_
# draw probability distributions and their difference (uplift)
plot_uplift_probs(trmnt_proba=sm_trmnt_proba, ctrl_proba=sm_ctrl_proba);
# draw Uplift and Qini curves
plot_uplift_qini_curves(y_true=y_val, uplift=uplift_sm, treatment=treat_val);
Development
We welcome new contributors of all experience levels.
Important links
Official source code repo: https://github.com/maks-sh/scikit-uplift/
Issue tracker: https://github.com/maks-sh/scikit-uplift/issues
Installation and source code
You can check the latest sources with the command:
git clone https://github.com/maks-sh/scikit-uplift/scikit-uplift.git
And install by the following command:
pip install -e .
Papers and materials
- Gutierrez, P., & Gérardy, J. Y.
Causal Inference and Uplift Modelling: A Review of the Literature. In International Conference on Predictive Applications and APIs (pp. 1-13).
- Artem Betlei, Criteo Research; Eustache Diemert, Criteo Research; Massih-Reza Amini, Univ. Grenoble Alpes
Dependent and Shared Data Representations improve Uplift Prediction in Imbalanced Treatment Conditions FAIM’18 Workshop on CausalML
- Eustache Diemert, Artem Betlei, Christophe Renaudin, and Massih-Reza Amini. 2018.
A Large Scale Benchmark for Uplift Modeling. In Proceedings of AdKDD & TargetAd (ADKDD’18). ACM, New York, NY, USA, 6 pages.
- Athey, Susan, and Imbens, Guido. 2015.
Machine learning methods for estimating heterogeneous causal effects. Preprint, arXiv:1504.01132. Google Scholar
- Oscar Mesalles Naranjo. 2012.
Testing a New Metric for Uplift Models. Dissertation Presented for the Degree of MSc in Statistics and Operational Research.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Hashes for scikit_uplift-0.0.1-py2.py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | a0d2d089f7a965f31300dd702ba49a23d30956f67c6786b7e38ee07478d4746b |
|
MD5 | 777f82f99fff850db2a22ac5b28208a8 |
|
BLAKE2b-256 | b807ebb19e31695ed3da342b7d5a53c61606a7c8a749c0295c21154cf996a087 |