Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

About the training of slearner #657

Open
Ramlinbird opened this issue Aug 16, 2023 · 1 comment
Open

About the training of slearner #657

Ramlinbird opened this issue Aug 16, 2023 · 1 comment
Labels
enhancement New feature or request

Comments

@Ramlinbird
Copy link

I read the implementation of slearner for estimating causal effects with multiple treatments, and find that it will train multiple models of each treatment-control pair. My question is, can I only train one overall model, which consider the treatments/control as one input feature? And then I can loop all the treatments/control and choose the largest output's corresponding input as final choice.

I tried training one overall model as I said before, and the training/test auc is high. But in the uplift by deciles graph, the mse between actual uplift and predict uplift can be large in some treatment-control pair. How can I calibrate the predict uplift? (In fact, I trained the ESMM model with one append feature- treatment/control.)

@Ramlinbird Ramlinbird added the enhancement New feature or request label Aug 16, 2023
@huigangchen
Copy link
Collaborator

Hi, I think this is an interesting idea. It is pretty straightforward to implement in S-learner and in an ideal situation it should produce similar results as done separately in the current implementation. But given the various capabilities of ML algorithms to approximate the data generating process and more importantly the potential imbalance of treat/control pairs in some cases it may produce different results.

S-learner may have bias in the uplift estimation (for example potentially from regularization bias). I wonder if it helps to calibrate the outcome for each treatment/control arm separately and then use the calibrated outcomes to generate the uplift estimate (I know it can be cheating as it looks more like T learner now).

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

No branches or pull requests

2 participants