02 / 05 · cluster k=1
A transparent model matched the black boxes: EBM won at AUC 0.809 and explains every decision.
In lending, “why?” matters as much as the prediction, yet the most accurate models tend to be black boxes. FICO's 2018 Explainable ML Challenge asks exactly this: can a transparent model replace a black box without losing performance? I tested that hypothesis on 10,459 HELOC applications, predicting delinquency within 24 months.
Following FICO's data dictionary, I handled the special codes (-9, -8, -7) one by one, dropped records with no credit history and kept “no delinquencies or inquiries” as flag variables. I tuned logistic regression, Random Forest, GBM, XGBoost, LightGBM, CatBoost and EBM with GridSearch and compared them with 5-fold cross-validation. A paired t-test checked whether the gaps were real or just noise. For explanations I used EBM's global and local outputs plus SHAP, and a local LLM (qwen2.5:7b) turns them into a plain-language assessment report.
EBM scored 0.809 test AUC and was statistically indistinguishable from XGBoost and CatBoost, so the transparent model became the final one. Recall 0.772, precision 0.746, accuracy 0.744. In a bank-policy analysis, a 20% target bad rate lets 31.6% of test applicants be approved. It all runs in a Streamlit app with live scoring and factor analysis.
Special-code cleaning + flags
EDA (23 variables)
Model comparison · GridSearch · 5-fold CV
Paired t-test → EBM
EBM + SHAP explanations, LLM report
Approval-rate analysis + Streamlit
Python · pandas · scikit-learn · XGBoost · LightGBM · CatBoost · InterpretML (EBM) · SHAP · Ollama · Streamlit
The dataset was deliberately balanced (52% bad / 48% good) and doesn't represent a real bank portfolio; on a real applicant pool the same bad-rate target would approve far more people. This isn't a deployable bank model. The next step would be retraining on a bank's own data and setting the cut-off by that bank's risk appetite.