A lot of people are struggling with class imbalance in this competition. Here is something that might help.
Think about it this way. If a customer took out a loan and the repayment period has not even ended yet, how can they have defaulted? They cannot. And no bank would give someone a new loan while they still have an active unpaid one.
So here is what you can do. For each customer, find their most recent disbursement_date. Then keep only the rows where the due_date is on or after that date. Those are the rows that actually matter for predicting defaults. When you do this, you will notice something interesting: almost all the defaults in the target column fall inside this smaller filtered dataset. Your class imbalance suddenly becomes much more manageable.
For the test set, any rows you filter out can simply be assigned target = 0. They are not defaults because the loan conditions do not support it.
Now the harder part. The Ghana rows in the test set do not appear in the training data at all. So your model has never seen Ghana customers during training, and generalizing to them is genuinely difficult. This is likely why a lot of scores are sitting in the 70s and 60s right now, mine included. I am still working on this part so if anyone has ideas I would love to hear them in the replies!
Good luck everyone! 🚀 Let me know if this helps.
This disbusrsement date thing helped boost my model. Thank you
You're welcome