in causalml/inference/meta/xlearner.py [0:0]
def __init__(self,
outcome_learner=None,
effect_learner=None,
control_outcome_learner=None,
treatment_outcome_learner=None,
control_effect_learner=None,
treatment_effect_learner=None,
ate_alpha=.05,
control_name=0):
"""Initialize an X-learner classifier.
Args:
outcome_learner (optional): a model to estimate outcomes in both the control and treatment groups.
Should be a regressor.
effect_learner (optional): a model to estimate treatment effects in both the control and treatment groups.
Should be a classifier.
control_outcome_learner (optional): a model to estimate outcomes in the control group.
Should be a regressor.
treatment_outcome_learner (optional): a model to estimate outcomes in the treatment group.
Should be a regressor.
control_effect_learner (optional): a model to estimate treatment effects in the control group.
Should be a classifier.
treatment_effect_learner (optional): a model to estimate treatment effects in the treatment group
Should be a classifier.
ate_alpha (float, optional): the confidence level alpha of the ATE estimate
control_name (str or int, optional): name of control group
"""
if outcome_learner is not None:
control_outcome_learner = outcome_learner
treatment_outcome_learner = outcome_learner
if effect_learner is not None:
control_effect_learner = effect_learner
treatment_effect_learner = effect_learner
super().__init__(
learner=None,
control_outcome_learner=control_outcome_learner,
treatment_outcome_learner=treatment_outcome_learner,
control_effect_learner=control_effect_learner,
treatment_effect_learner=treatment_effect_learner,
ate_alpha=ate_alpha,
control_name=control_name)
if ((control_outcome_learner is None) or (treatment_outcome_learner is None)) and (
(control_effect_learner is None) or (treatment_effect_learner is None)):
raise ValueError("Either the outcome learner or the effect learner pair must be specified.")