Hu, Musielewicz, Ulissi & Medford, MLST 2022 (CMU ChemE co-authors)
| Method | Claimed | Measured |
|---|---|---|
| GP on 5 points, settings by maximum likelihood | 95% | 78% (median of 200 data sets) |
| Five-network ensemble, concrete strength | 90% | 79%, then 90% after one scale factor |
| Split conformal, strongest mixes held out | 90% | 56% |
All from lectures/l14/figures/make_figures.py
Uncertainty quantification: attaching to each prediction a distribution or an interval, together with a claim about how often the truth falls inside it.
Aleatoric: scatter in the data itself, which more data does not remove. Epistemic: what the model does not know yet, which more data in the right place reduces.
Der Kiureghian & Ditlevsen, Struct. Saf. 2009 (paywalled) · Hüllermeier & Waegeman, Mach. Learn. 2021

Hüllermeier & Waegeman sec. 2.3 · Kennedy & O'Hagan 2001, sec. 2.1, six sources
| Interval | Covers | Meaning |
|---|---|---|
| Confidence | the function |
the procedure covers in repeated use |
| Credible | the function |
posterior probability |
| Prediction | a new measurement |
includes the noise |
Laves et al., MIDL 2020 · Guo et al., ICML 2017 · Hein et al., CVPR 2019
You re-test 50 more cylinders of mixes you already tested. Which uncertainty in the strength prediction for those mixes goes down?
Calibrated: stated probabilities match what happens; 90% intervals contain the measured value 90% of the time.
Sharpness: how narrow the predictive distributions are, a property of the forecasts alone.
| Concrete, 90% intervals | Coverage | Width |
|---|---|---|
| Climatology (training 5% to 95% quantiles) | 91% | 55.9 MPa |
| Rescaled ensemble (this lecture) | 90% | 22.2 MPa |
Gneiting, Balabdaoui & Raftery, JRSS B 2007 (author's copy)
Gneiting & Raftery, JASA 2007 (author's copy)
Gaussian process: a probability distribution over functions, set by a kernel that says how strongly values at two inputs are correlated.

After Rasmussen & Williams 2006, Fig. 2.2 (free online)



alpha=array sets a noise variance per training pointWhiteKernel estimates "the global noise level"

Duvenaud, kernel cookbook · Capone, Pleiss & Hirche, NeurIPS 2023

| Training points | Median 95% coverage | Below 80% | Below 50% |
|---|---|---|---|
| 5 | 78% | 52% | 26% |
| 12 | 92% | 21% | 1% |
| 40 | 95% | 0% | 0% |
Capone, Lederer & Hirche, ICML 2022 · Fiedler, Scherer & Trimpe, AAAI 2021 · R&W sec. 5.4.1
Deringer et al., Chem. Rev. 2021, sec. 5.2, Fig. 24 (open access)
Bootstrap: resample the training data with replacement, refit, and use the spread of the refitted models.
Deep ensemble: several networks that differ only in random starting weights and data order, with their predictions combined.
Lakshminarayanan, Pritzel & Blundell, NeurIPS 2017 · Fort, Hu & Lakshminarayanan 2019

| 95% intervals | Inside the data | Beyond the data |
|---|---|---|
| Seeds, spread only | 29% | 85% |
| Seeds, spread + noise | 93% | 93% |
| Bootstrap, spread only | 52% | 81% |
| Bootstrap, spread + noise | 94% | 87% |
A useful relative signal; not an interval until it has noise and a check.
Five ensemble members agree to three decimals at an input far outside the training data. What does that tell you?
Same fix four times: σ scaling (Laves), STD scaling (Levi), Musil et al. 2019, Kellner & Ceriotti 2024 Eq. 8

| 90% intervals | Grouped raw | Grouped × 1.66 | Extrap. raw | Extrap. × 1.44 |
|---|---|---|---|---|
| Coverage | 79% | 90% | 89% | 96% |
| Width (MPa) | 13.4 | 22.2 | 35.3 | 50.9 |
| NLL | 3.72 | 3.22 | 3.74 | 3.81 |
Split conformal prediction: set the interval width from the model's errors on a held-out calibration set, so it covers a new point with a stated probability.
Exchangeable: the joint distribution does not change if the points are reordered; calibration and test points were generated the same way.

| 90% intervals | Grouped | Width | Extrapolation | Width |
|---|---|---|---|---|
| Split conformal | 94% | 20.9 | 56% | 13.9 |
| Normalized by ensemble spread | 90% | 22.0 | 95% | 49.4 |
| CV+ | 98% | 23.0 | 74% | 20.1 |
| Climatology | 91% | 55.9 | 54% | 43.7 |
from mapie.regression import SplitConformalRegressor, CrossConformalRegressor
split = SplitConformalRegressor(model, confidence_level=0.9, prefit=True)
split.conformalize(X_cal, y_cal)
y_pred, y_int = split.predict_interval(X_test)
cvplus = CrossConformalRegressor(model, confidence_level=0.9,
method="plus", cv=GroupKFold(10))
cvplus.fit_conformalize(X_train, y_train, groups=groups_train)
MapieRegressor and alpha; most tutorials use the old namesAn optimizer proposes mixes using a conformal surrogate. Which condition of the 90% guarantee does that break?
predict(X, return_std=True)| Model | Idea | Source |
|---|---|---|
LinearRegressionUQ |
Bishop Eq. 3.59 | |
NeuralNetworkBLR |
Bayesian regression on last hidden layer | Snoek et al. 2015 |
DPOSE |
shallow ensemble, spread fitted | Kellner & Ceriotti 2024 |
LLPRRegressor |
prediction rigidity, after training | Bigi et al. 2024 |

| 95%, 5 seeds | Inside | Beyond |
|---|---|---|
LinearRegressionUQ |
94% | 2% |
NeuralNetworkBLR |
95% | 40% |
DPOSE |
93% | 63% |
LLPRRegressor |
93% | 84%, band 5× wider |
NeuralNetworkBLR printed "✓ Model is well-calibrated" each time: checked on from pycse.sklearn import NNBR # ImportError in pycse 2.11.1
from pycse.sklearn.nnbr import NeuralNetworkBLR
from pycse.sklearn.llpr_regressor import LLPRRegressor
from pycse.sklearn.dpose import DPOSE
from pycse.sklearn.lr_uq import LinearRegressionUQ
| Method | Assumes | Guarantee | Beyond the data | Cost |
|---|---|---|---|---|
| GP | data look like the prior; one noise | Bayesian | back to the prior | |
| Ensemble spread | members disagree where wrong | none | sometimes fans out | |
| Rescaled spread | calibration data like use | empirical | factor does not transfer | a data split |
| Split conformal | exchangeable | finite-sample, marginal | none | a data split |
| CV+ | exchangeable | none | ||
| Last layer (pycse) | features stay informative | none | often overconfident | one model |
l14-uq.ipynbWatch for 79% becoming 90%, and 90% becoming 56%.
Nicknames only. Everyone who skipped one still counted in every bar you saw.
l14-uq.ipynb; it installs MAPIE and pycseNotes for this lecture: lectures/l14/notes.md
Why 6, what UQ is 12, calibration 10, GPs 17, ensembles 14, conformal 13, pycse 7, close 5. About 84 minutes, then the notebook and questions.
Thirty seconds. Thirteen sessions behind us; this one decides how far to trust what the models from the highlands tell us. The route past here is deliberately vague: say it is still being surveyed, which is true.
Nothing in the method broke. Its one condition, that test structures resemble calibration structures, was not met. Come back to this case in the conformal section.
Push points up: the dark band collapses, the light band does not. Then push noise up. Point at the gray region: no data, the dark band returns to the prior.
Common wrong answer: D, from students who think only new inputs help. Repeats sharpen f at those inputs. Second most common: B, confusing a better estimate of the noise with less noise.
Press Fit. Noise comes out 0.044 against a true 0.1: 66% coverage inside, 96% beyond. Overconfident where there is data, honest where there is none. Click to add points and refit.
Noise sd 0.02 + 0.3x. Overall 95% looks fine; by third 100%, 98%, 88%. Then switch to "noise learned per point".
98% away from the step, 72% within 0.1 of it. Note the fitted length scale: 0.05.
Spread only, inside: 29%. Toggle the noise estimate: 93%. Beyond the data the members fan out here, 85%. Say clearly that fanning out is not guaranteed.
A is the popular wrong answer. Tie it back to Palmer: when bias dominates, the spread can be small and the error large.
Start at s = 1, press Fit: 1.66. Then switch to the extrapolation split and fit again.
Drop n below 9 at alpha 0.1. Then show the thirds: 100, 95, 82. Toggle the normalized score. Leave the window slide for the out-of-domain slide.