A Streamlit application demonstrating instant credit risk scoring with explainable AI using XGBoost and SHAP.
PulseCheck is a dual-view credit risk scoring system that provides:
- Customer Portal: Simple loan application with instant decisions
- Bank Officer Dashboard: Detailed risk analysis with SHAP explanations
pip install streamlit pandas numpy duckdb joblib shap plotlystreamlit run app.pyThe app will open at http://localhost:8501
- Simple loan application form
- Instant eligibility decision
- Clear explanations in plain English
- Professional banking interface
- Login with
admin/admin - View all applications with filters
- SHAP-based explainability for each decision
- Portfolio analytics and model performance metrics
- Manual override capability with audit trail
- Algorithm: XGBoost (Gradient Boosting)
- ROC-AUC Score: 0.9501
- F1-Score: 0.83
- Training Dataset: 32,581 loan applications
PulseCheck-Credit-Risk-Scoring/
├── app.py # Main Streamlit application
├── xgboost_model.pkl # Trained XGBoost model
├── scaler.pkl # Feature scaler
├── data/ # DuckDB database storage
│ └── applications.duckdb # Application database
├── Project_Models.ipynb # Model training notebook
├── PulseCheck.ipynb # Data exploration notebook
└── README.md # This file
This project was developed for MS DSP 422 at Northwestern University, demonstrating:
- Binary classification for loan default prediction
- Handling class imbalance (22% default rate)
- Explainable AI implementation using SHAP
- Professional UI/UX design for financial services
- Frontend: Streamlit
- ML Model: XGBoost
- Explainability: SHAP
- Database: DuckDB
- Visualization: Plotly
MIT License - See LICENSE file for details
PulseCheck Credit Risk Scoring System
Version 2.0 | Powered by XGBoost & SHAP