The ING Hubs Türkiye Datathon 2025 challenged participants to predict customer churn probability within a 6-month window following a reference date.
The evaluation used a custom composite metric:
| Metric | Weight |
|---|---|
| Gini Coefficient | 40% |
| Recall@10% | 30% |
| Lift@10% | 30% |
Each metric was normalized against a baseline model's performance.
The data consists of 4 CSV files (not included in this repo due to size):
| File | Description | Size |
|---|---|---|
referance_data.csv |
Training set: cust_id, ref_date, churn label |
~2.5 MB |
referance_data_test.csv |
Test set: cust_id, ref_date (no label) |
~750 KB |
customers.csv |
Demographics: gender, age, province, work info, tenure | ~7 MB |
customer_history.csv |
Monthly transaction history per customer | ~215 MB |
Note: Download the dataset from Kaggle – ING Hubs Türkiye Datathon and place the CSV files in the
ing-hubs-turkiye-datathon/directory.
ING Datathon/
├── analysis.ipynb # Main analysis notebook with full pipeline
├── README.md # This file
├── .gitignore # Git ignore rules
├── submission.csv # Final predictions for submission
└── ing-hubs-turkiye-datathon/ # Data directory (not in repo)
├── customer_history.csv
├── customers.csv
├── referance_data.csv
├── referance_data_test.csv
└── sample_submission.csv
Our analysis.ipynb notebook follows these steps:
- Data Loading – Read and inspect all 4 datasets
- EDA – Churn distribution, missing values, demographic analysis, correlations
- Feature Engineering – Create 60 features from customer history and demographics
- Model Training – CatBoost classifier with 5-fold cross-validation
- Evaluation – Custom competition metric and feature importance
- Submission – Generate predictions for test set
- Overall Score: 1.15203 (Competition metric)
- Gini Coefficient: 0.43024
- Recall@10%: 0.21712
- Lift@10%: 2.17112
- ROC AUC: 0.71512
- Fold 1: 1.17355
- Fold 2: 1.13336
- Fold 3: 1.14939
- Fold 4: 1.14294
- Fold 5: 1.15778
- Mean: 1.15140 ± 0.01366
- Test Samples: 43,006
- Prediction Range: 0.00038 - 0.41299
- Mean Prediction: 0.12624
overall_active_product_category_nbr_min(9.91%)overall_active_product_category_nbr_mean(8.98%)overall_active_product_category_nbr_max(7.34%)last6m_active_product_category_nbr_sum(6.81%)last6m_active_product_category_nbr_mean(6.72%)last6m_active_product_category_nbr_min(6.08%)last6m_active_product_category_nbr_max(3.93%)overall_active_product_category_nbr_sum(2.68%)overall_mobile_eft_all_cnt_std(2.45%)overall_active_product_category_nbr_std(2.32%)
- Churn Rate: 14.16% of customers churned in the dataset
- Best Predictors: Product category activity features are most important
- Model: CatBoost performed well with good generalization across folds
- Business Impact: Model can identify high-risk customers for retention strategies
- Feature Engineering – RFM-inspired features with overall and last-6-month aggregations
- Model Training – CatBoost with 5-fold stratified cross-validation
- Feature Importance – Identify key churn predictors
- Submission – Generate predictions for the test set
- Python 3.8+
- Required packages:
pandas,numpy,matplotlib,seaborn,scikit-learn,catboost
pip install pandas numpy matplotlib seaborn scikit-learn catboost- Clone this repository
- Download the competition data and place CSVs in
ing-hubs-turkiye-datathon/ - Open and run
analysis.ipynb
- Feature engineering was king: The majority of the winning team's effort went into crafting meaningful features. A well-engineered feature set with a default CatBoost model could already achieve a private score of ~1.25.
- RFM framework: Breaking down Recency, Frequency, and Monetary metrics into granular sub-features, especially focusing on the last 6 months, proved highly effective.
- Ensemble for the win: The final 1st place submission used AutoGluon's ensemble approach, but the marginal improvement from complex modeling was small compared to feature engineering gains.
- "Garbage in, garbage out": Correct handling of missing data and understanding domain-specific patterns (e.g., no credit card transactions = no credit card usage) was crucial.
- Invest time in understanding the data before modeling
- The prediction window (6 months) should guide feature engineering decisions
- Custom eval metrics matter – optimize for what the competition actually measures
- Simple well-tuned models can be competitive with complex ensemble approaches
This project is a simplified and cleaned version of the 1st place competition solution, designed for clarity and educational purposes.