Quick Start¶
See the RetailHero tutorial notebook (EN , RU
) for details.
Train and predict your uplift model¶
Use the intuitive python API to train uplift models with sklift.models.
1# import approaches
2from sklift.models import SoloModel, ClassTransformation, TwoModels
3# import any estimator adheres to scikit-learn conventions.
4from catboost import CatBoostClassifier
5
6
7# define models
8treatment_model = CatBoostClassifier(iterations=50, thread_count=3,
9 random_state=42, silent=True)
10control_model = CatBoostClassifier(iterations=50, thread_count=3,
11 random_state=42, silent=True)
12
13# define approach
14tm = TwoModels(treatment_model, control_model, method='vanilla')
15# fit model
16tm = tm.fit(X_train, y_train, treat_train)
17
18# predict uplift
19uplift_preds = tm.predict(X_val)
Evaluate your uplift model¶
Uplift model evaluation metrics are available in sklift.metrics.
1# import metrics to evaluate your model
2from sklift.metrics import (
3 uplift_at_k, uplift_auc_score, qini_auc_score, weighted_average_uplift
4)
5
6
7# Uplift@30%
8tm_uplift_at_k = uplift_at_k(y_true=y_val, uplift=uplift_preds,
9 treatment=treat_val,
10 strategy='overall', k=0.3)
11
12# Area Under Qini Curve
13tm_qini_auc = qini_auc_score(y_true=y_val, uplift=uplift_preds,
14 treatment=treat_val)
15
16# Area Under Uplift Curve
17tm_uplift_auc = uplift_auc_score(y_true=y_val, uplift=uplift_preds,
18 treatment=treat_val)
19
20# Weighted average uplift
21tm_wau = weighted_average_uplift(y_true=y_val, uplift=uplift_preds,
22 treatment=treat_val)
Vizualize the results¶
Visualize performance metrics with sklift.viz.
1from sklift.viz import plot_qini_curve
2
3plot_qini_curve(y_true=y_val, uplift=uplift_preds, treatment=treat_val, negative_effect=True)

1from sklift.viz import plot_uplift_curve
2
3plot_uplift_curve(y_true=y_val, uplift=uplift_preds, treatment=treat_val)

1from sklift.viz import plot_uplift_by_percentile
2
3plot_uplift_by_percentile(y_true=y_val, uplift=uplift_preds,
4 treatment=treat_val, kind='bar')
