py-why / py-why/EconML

MetaLearner with classifier as input model when target si binary

Open
#694 0 comments 6 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
Jupyter Notebook
Stars
4.8k
Forks
827
PR merge metrics
No merged PRs in 30d

Description

Hi,

I was wondering why scikit-uplift have better results (A LOT!) when comparing solomodel(slearner) vs econml SLearner for a X, T(binary), Y(binary) problem.

As the target is binary, I used a classifier in both metalearner models. Both used the same CatBoostClassifier() model and parameters.

When testing and experimenting very bad results for the Slearner (econml) compared to the Solomodel(scikit-uplift), I decided to change the econml Slearner estimator (overall_model) from a CatBoostClassifier() to a CatBoostRegressor().

Boom! Results were now almost the same.... WHY ?

There seems to be a problem in the effect prediction when the target is binary (Classification problems).

the ".predict" function of the given estimator is always used. Soo it means it will use by default the 0.5 threshold to classifier to a 1 or 0. It should not use the predict_proba score instead when the overall_model is a classifier ?

image

Contributor guide

No contributing guide indexed for this repository

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start with the MetaLearner/S-Learner effect-prediction path and compare how the supplied CatBoostClassifier and CatBoostRegressor are handled. Reproduce the binary X, T, Y case using the same parameters, then inspect whether predict or predict_proba is used; done means the behavior is explained and the expected prediction path is covered by a regression test.

Written by the indexing model from the issue text.

Assessment

Tech stack
machine-learning
Domain
machine-learning
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
30/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.