Modules

Supervised learning

Plan : Free

Predict who will respond, and above all who responds because you targeted them.

Business problems

  • Rank a customer base by purchase probability and contact only the top of the list.
  • Avoid spending a follow-up budget on customers who would have bought anyway.
  • Spot the customers a solicitation drives away, before soliciting them.

Academic problems

  • Teach the difference between a response model and an uplift model on an A/B test.
  • Show why a model is judged on a test sample, not on the rows it was fitted on.

Methods & guarantees

  • Missing values replaced by the training mean, the same one for the test set and for inference.
  • Uplift through class transformation (Jaśkowski and Jaroszewicz, 2012), with automatic rebalancing of the treated and control arms.
  • Qini coefficient as defined by Radcliffe (2007), with the same values as the Python library scikit-uplift.

Predict a response, and judge the model on rows it has not seen

In Response mode, Estimator chooses between linear and logistic regression. Results come in two tabs, Train and Test: the second reads the sample set aside by the flag_test column, which tells how the model behaves on new data. Regression: R², MAE, RMSE. Classification: balanced accuracy, macro precision and F1, AUC, Gini, and the confusion matrix.

Missing values are replaced by the mean computed on the training rows alone, and the same mean is used for the test set: no column is dropped because it has gaps.

Metrics and confusion matrix of a logistic regression on the Titanic test sample
Logistic regression on the Titanic, judged on 178 passengers drawn at random and left out of the fit.

Know whom to target, and what the prediction rests on

The coefficients, and for logistic regression the odds ratios, show the weight of each variable. The ROC curve measures how well the model separates the classes. The cumulative gains curve answers the targeting question: contacting only a share of the population, sorted by score, what share of the positives do you reach?

ROC curve and cumulative gains curve on the test sample
AUC of 0.75 on the test sample; the gains curve is set against random targeting (diagonal) and perfect targeting (yellow dashes).

Target those the action actually changes

A response model says who will convert. Uplift mode says who converts because they were treated. The difference matters as soon as you target an action: a customer who would have bought anyway brings nothing to the campaign, and some even react badly to a follow-up. On A/B test data (Treatment, Treated Value), the score predicts for each individual the gap between their probability of success if treated and if not, from −1 to 1.

The arms are rebalanced automatically when their sizes differ. This reading assumes the treatment was assigned at random: on observational data, no setting corrects the bias.

Check that an uplift ranking is worth something

Uplift Charts splits individuals by decreasing score and measures, slice by slice, the uplift actually observed between treated and control, with its test and confidence interval. Cumulative Uplift (Top P%) answers the decision question: if I target only the top 30%, what effect do I get? The Qini coefficient sums up the value of the ranking: 1 for a perfect ranking, 0 for chance. BH Correction controls the risk of false positives when ten bars are read at once. The charts open on the test sample when there is one, so the model is not judged on the rows it was fitted on.

Reuse the score

Score Bins cuts the score into quantiles, which become groups to describe in profiling. Inference applies the model to a new file without re-estimating it, and Cluster Predictor adds the classes of a clustering to the explanatory variables. To measure the effect of actions at campaign level rather than per individual, see Hy-Performance.

Try it on your own data

Everything runs in your browser: your data never leaves it.

Open Tetrachore

Updated 6 November 2026