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,)) – 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,))