sklift.models.ClassTransformationReg

class sklift.models.models.ClassTransformationReg(estimator, propensity_val=None, propensity_estimator=None)[source]

aka CATE-generating (Conditional Average Treatment Effect) Transformation of the Outcome.

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

where Y - target vector, W - vector of binary communication flags, and p is a propensity score (the probabilty that each y_i is assigned to the treatment group.).

Then, train a regressor on Z to predict uplift.

Returns uplift predictions and optionally propensity predictions.

The propensity score can be a scalar value (e.g. p = 0.5), which would mean that every subject has identical probability of being assigned to the treatment group.

Alternatively, the propensity can be learned using a Classifier model. In this case, the model predicts the probability that a given subject would be assigned to the treatment group.

Read more in the User Guide.

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

  • propensity_val (float) – A constant propensity value, which assumes every subject has equal probability of assignment to the treatment group.

  • propensity_estimator (estimator object with predict_proba) – The object used to predict the propensity score if propensity_val is not given.

Example:

# import approach
from sklift.models import ClassTransformationReg
# import any estimator adheres to scikit-learn conventions
from sklearn.linear_model import LinearRegression, LogisticRegression


# define approach
ct = ClassTransformationReg(estimator=LinearRegression(), propensity_estimator=LogisticRegression())
# fit the model
ct = ct.fit(X_train, y_train, treat_train)
# predict uplift
uplift_ct = ct.predict(X_val)

References

Athey, Susan & Imbens, Guido & Ramachandra, Vikas. (2015). Machine Learning Methods for Estimating Heterogeneous Causal Effects.

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

predict_propensity(X)[source]

Predict propensity values.

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

propensity

Return type

array (shape (n_samples,))