African Credit modeling challenge out of curiosity and using other solutions as reference.
African Credit Score Challenge
The objective was to build a model that predicts whether a loan applicant in an African financial dataset is likely to default.
Project Contents
- notebooks/eda.ipynb: The main notebook that includes all stages of the project – from data loading and cleaning to feature engineering, modeling, evaluation, and prediction.
- data/: Contains the provided datasets including train.csv, test.csv, and economic_indicators.csv.
- submission.csv: Final output file containing predictions.
- requirements.txt: List of all Python dependencies required to run the project.
- README.md: This file.
How to Run the Project
1. Set up a new Python environment using Conda or virtualenv (recommended).
Example using Conda:
conda create -n miway_env python=3.10
conda activate miway_env
2. Install all dependencies:
pip install -r requirements.txt
3. Launch Jupyter Notebook:
jupyter notebook
4. Open the file:
notebooks/eda.ipynb
5. Run all cells in the notebook in order. This will:
- Load and filter the datasets
- Apply feature engineering
- Tune models using Optuna
- Evaluate the best model using F1-score, precision, recall, and accuracy
- Generate predictions for the test set
- Export a final submission.csv file containing ID, target, and credit_score
Submission File
The submission.csv file will contain:
- ID: Loan ID from the test set
- target: 0 or 1 (predicted default)
- credit_score: Predicted probability of default
Notes
- All code is kept inside one notebook for simplicity.
- No external scripts or models are required to reproduce results.
- The models tested include LightGBM, XGBoost, and CatBoost. Optuna selects the best model and hyperparameters automatically.
- Business rules and domain logic were applied to filter the training and test sets to ensure consistency and improve performance.
Author
George Kusche