Issue
I have two classes in my data.
This is how class distribution looks like.
0.0 169072
1.0 84944
In other words, I have 2:1 class distribution.
I believe I have two choices. Downsample the class 0.0
or upsample class 1.0
. If I go with option 1, I'm losing data. If i go with option 2, then I'm using non-real data.
Is there a way, I can train the model without upsample or downsample?
This is how my classification_report looks like.
precision recall f1-score support
0.0 0.68 1.00 0.81 51683
1.0 1.00 0.00 0.00 24522
accuracy 0.68 76205
macro avg 0.84 0.50 0.40 76205
weighted avg 0.78 0.68 0.55 76205
Solution
I would not recommend either approach.
I'm thinking about models to detect fraud. By definition, fraud should be a small percentage of outcomes - on the order of 1-5%. Changing the percentage for training would be a gross distortion of the problem being solved.
Better to leave the proportions as they are.
Make sure that your train, validation, and test data sets all have ratios that reflect the real problem.
Adjust your outcome instead. Don't go for accuracy. A naive model that assumes the 0 outcome will be correct 2/3rds of the time. You want your model to be better than that or a weighted coin flip.
I'd recommend using recall as your criterion for success.
Answered By - duffymo
0 comments:
Post a Comment
Note: Only a member of this blog may post a comment.