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 plotly
streamlit run app.py
The 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
├── data/ # DuckDB database storage
│ └── applications.duckdb # Application database
│ └── credit_risk_dataset.csv # Raw CSV Data
├── models/ # Models
│ └── xgboost_model.pkl # XGBoost Trained Model
| └── scaler.pkl # Feature scaler
├── credit-risk-prediction-models.ipynb # Model training notebook
├── Credit_Risk_Project_Presentation.pptx # Presentation
├── MSDS422_PulseCheck_Report.pdf # Report for the project
├── PulseCheckEDA.ipynb # Data exploration notebook
├── requirements.txt # Requirements
└── README.md # This file
└── License # MIT License
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