Quantum kernel SVM for rapid Ebola strain triage (Bundibugyo · Zaire · Sudan · Non-HF). ZZFeatureMap encoding of 20 clinical features. Motivated by the 2026 DRC/Uganda Bundibugyo PHEIC. PennyLane · scikit-learn · imbalanced learning.
# QSVM Haemorrhagic Fever Classifier
Quantum Support Vector Machine for rapid Ebola strain triage (**Bundibugyo · Zaire · Sudan · Non-Ebola HF**) using a ZZFeatureMap quantum kernel. The project now contains both the original negative result and the bandwidth-tuned rescue experiment: naive quantum kernels concentrate, but bandwidth optimisation recovers useful kernel structure for the binary Bundibugyo triage task.
---
> [!IMPORTANT]
> **Key Finding:** Despite geometric difference g = 820, indicating the quantum kernel spans a fundamentally different functional space from classical kernels, the default ZZFeatureMap degenerates to a near-constant matrix (off-diagonal σ = 0.0445) on reconstructed clinical tabular data. Bandwidth tuning moves kernel-target alignment from 0.1613 to 0.4128 and lifts binary QSVM macro recall from 0.5000 to 0.5687, competitive with the best classical binary baseline in this run.
---
## Architecture
```mermaid
flowchart TD
subgraph Sources["Data Sources"]
A["MacNeil 2010 · CDC EID\nBundibugyo · 56 confirmed"]
B["Roddy 2012 · PLoS ONE\nBundibugyo · 93 putative"]
C["MMWR 2022 · CDC\nSudan · 87 confirmed"]
D["Schieffelin 2014 · NEJM\nZaire · 106 confirmed"]
end
subgraph Engineering["Feature Engineering"]
E["PDF Extraction\npdfplumber + Claude API"]
F["IPD Reconstruction\nGaussian copula from\npublished frequencies\n(intra-cluster rho preserved)"]
G["SMOTE · PCA 6 components\nScaled to 0-pi for quantum encoding"]
end
subgraph Classes["Reconstructed Dataset n=520"]
H["BUNDIBUGYO\nn=93 · CFR 40%"]
I["ZAIRE\nn=200 · CFR 74%"]
J["SUDAN\nn=87 · CFR 53%"]
K["NON-EBOLA HF\nn=140 · CFR 15%"]
end
subgraph Models["Model Training"]
L["Classical Baselines\nLinear SVM · RBF SVM\nRandom Forest · LR · XGBoost"]
M["Default ZZFeatureMap Kernel\n6 qubits · depth 2\nK = overlap of quantum states"]
N["Default QSVM\nSVC precomputed kernel\nC=0.1 · class weight balanced"]
S["Bandwidth Sweep\nlambda in 0.05-2.0\nmaximise KTA"]
T["Tuned QSVM\nlambda* = …