sklift.models.ClassTransformation

class sklift.models.models.ClassTransformation(estimator)[source]

aka Class Variable Transformation or Revert Label approach.

Redefine target variable, which indicates that treatment make some impact on target or did target is negative without treatment: Z = Y * W + (1 - Y)(1 - W),

where Y - target vector, W - vector of binary communication flags.

Then, Uplift ~ 2 * (Z == 1) - 1

Returns only uplift predictions.

Read more in the User Guide.

Parameters

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

Example:

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


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

References

Maciej Jaskowski and Szymon Jaroszewicz. Uplift modeling for clinical trial data. ICML Workshop on Clinical Data Analysis, 2012.

See also

Other approaches:

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

Fit the model according to the given training data.

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