I have a population of 2 million people and 700 variables (which have many nulls, zeros, or -9999), for which I develop a python model, which works as follows
I generate a dataframe of the entire population and variables
I take out the variables that I don't need (ID, name for example)
I partition the data and calculate its indicators with ks_2samp (scipy.stats) and then filter those with very low indices (roc, ks)
Then, I take the correlations of all the variables and filter again.
Right after this, I generate the model using Xgboost. Using shap.TreeExplainer, I get the importance of all the variables that were finally left in my model (about 90 variables)
Although I reduced the number of variables, there are still too many. Does anyone know any way to keep removing variables? My idea is to get up to 30 variables.