I am working on a big data set which has 25 features with 237862 number of rows. I am trying to predict return . 1 is for return and 0 for no return. My data set has 12% of data which returned. So highly imbalance class . And because of that I am not predicting return very well. I have tried Up sampling, down sampling, SMOTE and ROSE. but not improved precision or recall. Also if I sample my data and then split it into train and validation set then it predict better , but if I sampled only train and predict on original validation set it won't predict well.
models used: Naive Bayes, Ranger, XGboost data has most of factor features. only 1 integer. please help how to make a better model.