African-Credit-Scoring-Challenge
# African Credit Scoring Challenge
## Project Overview
This repository contains the implementation for the **African Credit Scoring Challenge** hosted on Zindi. The challenge involved predicting the likelihood of a customer defaulting on a loan based on financial data. The project utilizes **deep learning techniques** combined with **feature engineering** and **hyperparameter optimization** to achieve high predictive performance.
## Dataset
The dataset consists of:
- **Training Data**: Customer financial records with features like loan type, demographics, and repayment history.
- **Test Data**: Customer records without target labels, used for final evaluation.
- **Target Variable**: A binary classification label indicating **loan default (1) or no default (0).**
## Key Features & Methodology
### 1. Data Preprocessing
- **Handling Missing Values:**
- Numerical features were imputed with the mean.
- Categorical features were imputed with the mode.
- **Feature Engineering:**
- `days_to_repay`: Difference between loan disbursement date and due date.
- `repay_ratio`: Ratio of total repayment amount to original loan amount.
- `amount_duration_ratio`: Ratio of loan amount to loan duration.
- `disbursement_month`: Extracted from the disbursement date.
- Interaction terms such as `amount_duration_interaction` and `repay_duration_interaction`.
- **Categorical Encoding:**
- Label encoding for categorical variables such as `loan_type` and `country_id`.
- **Normalization:**
- Standardization using `StandardScaler` to ensure zero mean and unit variance.
- **Class Balancing:**
- **ADASYN (Adaptive Synthetic Sampling)** was used to balance class distribution.
- **Data Splitting:**
- 80-20 split into training and validation sets.
### 2. Deep Learning Model
The architecture is based on a **Wide and Deep Learning** framework:
- **Wide Layer**: Captures simple feature interactions.
- **Deep Layers**:
- **LayerNorm** for stable training.
- **LeakyReLU** activation.
- **Dropout** for …