I'm dealing with a dataset that contains almost same number of positive and negative samples (there are around 55% of positive samples and 45% of negative samples). With XGBoost I'm managing to achieve around 94% accuracy and 2.5% of false positives but I'm willing to lower accuracy down if it means reducing number of false positives too. At the moment I'm using 'scale_pos_weight' parameter to achieve my goal and it works fairly well. By using 'scale_pos_weight' of 0.2 I'm getting 92.7% accuracy while my false positive rate drops to 0.8% which is great. I just want to know if maybe there is a better way to achieve false positive rate reduction? Objective function I'm using is 'binary:logistic'