I am working with a customer on a Pro trial. They are working out of a ~3mil row dataset trying to build a predictive model to predict failures, which occur 0.1% of the time (binary response, continuous factors). Failures are killers and would gladly accept a model that can capture said failures even at the cost of losing passes.
I have thrown just about everything I know how to do. To keep run times down they have subset the original file down to anywhere from 1-10% of the original data, trying various weighting techniques, Torch, XG Boost, and Model Screening. Boosted Tree has provided the greatest success but in each instance the model developed on the subset is too overfit to be useful on a either a similarly sized but uniquely different data set or the larger data set.
Should I weight more (currently weighting pass/fail at 1/100), create a subset of data where failures are over represented? Are there hyperparameters that can be optimally set for this sort of highly imbalanced model? I'm looking for advice/guidance on what I might try with this person. Thank you.