py-why / EconML

ALICE (Automated Learning and Intelligence for Causation and Economics) is a Microsoft Research project aimed at applying Artificial Intelligence concepts to economic decision making. One of its goals is to build a toolkit that combines state-of-the-art machine learning techniques with econometrics in order to bring automation to complex causal inference problems. To date, the ALICE Python SDK (econml) implements orthogonal machine learning algorithms such as the double machine learning work of Chernozhukov et al. This toolkit is designed to measure the causal effect of some treatment variable(s) t on an outcome variable y, controlling for a set of features x.
https://www.microsoft.com/en-us/research/project/alice/
Other
3.65k stars 690 forks source link

Convergence issue during .fit() #183

Open xinyuww opened 4 years ago

xinyuww commented 4 years ago

I am getting a lot of the following warning during fitting DiscreteTreatmentOrthoForest.

/opt/miniconda3/lib/python3.7/site-packages/sklearn/linear_model/sag.py:337: ConvergenceWarning: The maxiter was reached which means the coef did not converge

I get this in the terminal even during fitting the simulate dataset in the notebooks Orthogonal Random Forest Example.ipynb, the Multiple Treatment section. I am what are the potential reasons for this. Thanks!

vasilismsr commented 4 years ago

This should not affect the estimate. These are coming more from the internal residualizations at the nodes of the tree and for some alpha's (regularization weight) tried out by the cross validation done internally by LassoCV. For some of these alpha's due to some small samples at some nodes, the optimization problem did not converge. But the lassoCV will most defintely wont pick those alphas. Moreover, in the end we run a final WeightedLassoCV at predict time, which is the important one. These appear too for our synthetic data as you noticed, but as you'll see in the synthetic data the final estimate is still accurate.