How alessandro-deidda/isw-qubo-classification-g40 works
This is a reproducible loan-risk classification application: raw tabular data is cleaned and normalized, reduced through Spearman-based QUBO feature selection, used to train a classifier, then scored for predictions and classification statistics. Users can run the stages from the CLI or use the Streamlit GUI, which the README documents as wrapping the full workflow. The feature-selection excerpt supports the correlation, annealing, and alpha-sweep mechanics; GUI excerpts are partial, so detailed UI-to-stage wiring is not expanded.
Main entry points: feature_selection.py Select features · gui.py Streamlit GUI · preprocessing.py Normalize data · model.py Train classifier
Components 16
Data workflow
- Normalize data
src/qubo_project/preprocessing.py - Normalized CSV
QUBO selection
- Select features
src/qubo_project/feature_selection.py - QUBO annealing
src/qubo_project/feature_selection.py - Reduced splits
- Selection diagnostics
Modeling
- Train classifier
src/qubo_project/model.py - Persisted model
- Training metrics
- Predict and evaluate
src/qubo_project/model.py - Predictions and stats
User interfaces
- Streamlit GUI
src/qubo_project/gui.py
Other components
- User
- CLI caller
- Loan dataset
- Streamlit runtime
Connections 23
- CLI caller → Normalize data: runs stage
- Loan dataset → Normalize data: reads CSV
- Normalize data → Normalized CSV: writes CSV
- Normalize data → Select features: GUI invokes
- CLI caller → Select features: runs stage
- Normalized CSV → Select features: reads CSV
- Select features → QUBO annealing: builds and solves
- Select features → Reduced splits: writes splits
- Select features → Selection diagnostics: writes reports
- CLI caller → Train classifier: runs stage
- Reduced splits → Train classifier: reads training split
- Train classifier → Persisted model: persists model
- Train classifier → Training metrics: writes metrics
- CLI caller → Predict and evaluate: runs stage
- Reduced splits → Predict and evaluate: reads test split
- Persisted model → Predict and evaluate: loads model
- Predict and evaluate → Predictions and stats: writes predictions and stats
- User → Streamlit GUI: uses
- Streamlit runtime → Streamlit GUI: hosts
- Streamlit GUI → Normalize data: invokes
- Streamlit GUI → Select features: invokes
- Streamlit GUI → Train classifier: invokes
- Streamlit GUI → Predict and evaluate: invokes