Founded 5 years ago

Python package for uplift modeling in scikit-learn style

scikit-uplift (sklift) is an uplift modeling python package that provides fast sklearn-style models implementation, evaluation metrics, and visualization tools.


The main idea is to provide easy-to-use and fast python package for uplift modeling. It delivers the model interface with the familiar scikit-learn API. One can use any popular estimator on his choice (for instance, from the Catboost library).

Uplift modeling estimates a causal effect of treatment and uses to effectively target customers that are most likely to respond to a marketing campaign.

Read more about uplift modeling problem in the User Guide. 

Articles in Russian on 

Use cases

  • Target customers in the marketing campaign. Quite useful in the promotion of some popular product where there is a big part of customers who make a target action by themself without any influence. By modeling uplift, you can find customers who are likely to make the target action (for instance, install an app) only when treated (for instance, received a push).
  • Combine a churn model and an uplift model to offer some bonuses to a group of customers who are likely to churn.
  • Select a tiny group of customers in the campaign where a price per customer is high.

Currently implemented methods

  • One Model
  • Two Models
  • Class Transformation method.

There are also a large number of metrics and its visualizations:

  • uplift@k
  • uplift by percentile
  • weighted average uplift
  • Qini curve, Qini coefficient (a.k.a Area Under Qini Curve)
  • Uplift curve and AUUC (a.k.a Area Under Uplift curve),
  • Treatment balance curve.


  • Сomfortable and intuitive scikit-learn-like API;
  • Applying any estimator compatible with scikit-learn (e.g. XGBoost, LightGBM, Catboost, etc.);
  • All approaches can be used in sklearn.pipeline (see example);
  • Almost all implemented approaches solve classification and regression problem;
  • More uplift metrics that you have ever seen in one place! Include brilliants like Area Under Uplift Curve (AUUC) or Area Under Qini Curve (Qini coefficient) with ideal cases;
  • Nice and useful viz for analyzing a performance model.

Getting started

Install the package from PyPI:

pip install scikit-uplift



sklift is being actively maintained and welcomes new contributors of all experience levels.

If you have any questions, please contact us at

Important links

Cookies help us deliver our services. By using our services, you agree to our use of cookies.