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'
$\begingroup$
$\endgroup$
1
-
$\begingroup$ Someone has written a guide about using custom loss functions to reduce false negatives. kaggle.com/code/konstantinpluzhnikov/… I am not certain, but I think it produces a better result than simply changing the threshold used in the ROC curve. $\endgroup$– Ismam HudaCommented May 1, 2023 at 12:29
Add a comment
|
1 Answer
$\begingroup$
$\endgroup$
Just changing the threshold of the classification changes the FP rate.
I recommend you to investigate the ROC curve of your outputs.