sklift.models.SoloModel

class sklift.models.models.SoloModel(estimator, method='dummy')[source]

aka Treatment Dummy approach, or Single model approach, or S-Learner.

Fit solo model on whole dataset with ‘treatment’ as an additional feature.

Each object from the test sample is scored twice: with the communication flag equal to 1 and equal to 0. Subtracting the probabilities for each observation, we get the uplift.

Return delta of predictions for each example.

Read more in the User Guide.

Parameters
  • estimator (estimator object implementing 'fit') – The object to use to fit the data.

  • method (string, ’dummy’ or ’treatment_interaction’, default='dummy') –

    Specifies the approach:

    • 'dummy':

      Single model;

    • 'treatment_interaction':

      Single model including treatment interactions.

trmnt_preds_

Estimator predictions on samples when treatment.

Type

array-like, shape (n_samples, )

ctrl_preds_

Estimator predictions on samples when control.

Type

array-like, shape (n_samples, )

Example:

# import approach
from sklift.models import SoloModel
# import any estimator adheres to scikit-learn conventions
from catboost import CatBoostClassifier


sm = SoloModel(CatBoostClassifier(verbose=100, random_state=777))  # define approach
sm = sm.fit(X_train, y_train, treat_train, estimator_fit_params={{'plot': True})  # fit the model
uplift_sm = sm.predict(X_val)  # predict uplift

References

Lo, Victor. (2002). The True Lift Model - A Novel Data Mining Approach to Response Modeling in Database Marketing. SIGKDD Explorations. 4. 78-86.

See also

Other approaches:

Other:

fit(X, y, treatment, estimator_fit_params=None)[source]

Fit the model according to the given training data.

For each test example calculate predictions on new set twice: by the first and second models. After that calculate uplift as a delta between these predictions.

Return delta of predictions for each example.

Parameters
  • X (array-like, shape (n_samples, n_features)) – Training vector, where n_samples is the number of samples and n_features is the number of features.

  • y (array-like, shape (n_samples,)) – Binary target vector relative to X.

  • treatment (array-like, shape (n_samples,)) – Binary treatment vector relative to X.

  • estimator_fit_params (dict, optional) – Parameters to pass to the fit method of the estimator.

Returns

self

Return type

object

predict(X)[source]

Perform uplift on samples in X.

Parameters

X (array-like, shape (n_samples, n_features)) – Training vector, where n_samples is the number of samples and n_features is the number of features.

Returns

uplift

Return type

array (shape (n_samples,))