Fab Root-Cause Analysis
data · 2026Root-cause analysis on real semiconductor fab data: control charts found the process excursion; time-ordered testing showed what a model could and couldn't predict.
- Python
- SQLite
- SPC
- scikit-learn
- SHAP
- Streamlit
I loaded the SECOM dataset into SQLite, then used statistical process control to find a July–August process excursion in three sensors (s059, s103, s510), and trained logistic regression and gradient boosting to predict failed runs.
Result: random cross-validation made the model look useful (PR AUC 0.175), but a time-ordered split, the way a fab would actually deploy it, put it at chance (0.067). It had learned August's failure signature; October's spike had a different cause.
I then replayed Aug–Oct with weekly retraining: a 4-week sliding window started catching October failures on the first day of the spike, where a train-once model caught none. With 75 failures that's directional, so I report it with day-level bootstrap confidence intervals. Per-run SHAP explanations and a Streamlit dashboard let an engineer pick a run and see its risk, top sensor drivers and control charts.






