Regarding the group formation in an oil-price experiment
Without knowing more about your specific project, you probably want to look at difference-in-difference methodologies. It's the bread and butter of this sort of psudo-experiment. 

I see you use the phrases "train" and "test".  Be very careful, typically machine learning approaches are designed to get very good $\hat{Y}$s.  Economists in general don't care about $\hat{Y}$s much at all. We care about having good $\hat{\beta}$'s. It will take some time to get used to that idea.

Naive use of traditional ML techniques will lead to highly biased estimators and very misleading estimates of $\hat{Y}$ that often lead to bad policy decisions.