Repository navigation
v1.4.1: engine additions for probabilistic forecasting - #8
Merged
Merged
Conversation
…rget with values <= 0 Signed-off-by: yallioux <yann4allioux@gmail.com>
…-tail calibration; calibrate(verbose=False) Signed-off-by: yallioux <yann4allioux@gmail.com>
… one cycle used to normalise the feature Signed-off-by: yallioux <yann4allioux@gmail.com>
…quantiles for quantile forecasts Signed-off-by: yallioux <yann4allioux@gmail.com>
…, quantiles back-transformed exactly Signed-off-by: yallioux <yann4allioux@gmail.com>
… base from past standardized residuals Signed-off-by: yallioux <yann4allioux@gmail.com>
…tive variance of the filter Signed-off-by: yallioux <yann4allioux@gmail.com>
… discrete and compound Poisson-gamma quantiles Signed-off-by: yallioux <yann4allioux@gmail.com>
…reads hangs the batched LU of the grouped solves on one torch build Signed-off-by: yallioux <yann4allioux@gmail.com>
Signed-off-by: yallioux <yann4allioux@gmail.com>
yallioux
marked this pull request as ready for review
October 8, 2026 20:59
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What and why
v1.4.1: engine additions for probabilistic forecasting. Patch release: new methods and options only, plus the rejection of one invalid call. Existing calls give the same forecasts (
tests/regression/unchanged apart from the text of one error message). Found while building a probabilistic benchmark harness on fev-bench.StaticTAMwith the default log target rejects a training target with values<= 0(they were clipped to 1e-12 before the log, so the fitted scale collapsed or exploded).AdaptiveTAM.predict_quantiles(scale renewed online from past standardized residuals),KalmanTAM.predict_quantiles(predictive variance of the filter),SafetyTAM.predict_quantiles(several levels, signed per-tail calibration),OperaTAM(loss_type='pinball', tau=...)andaggregate_quantiles.target_transform"asinh"and"logit"for the distributionalStaticTAM;loss="negative_binomial"andloss="tweedie"with discrete and compound Poisson-gamma quantiles, also forpoisson.f(x, ..., period=None | 'auto' | (low, high)): the range of one cycle of a Fourier input. The default is unchanged;cyclic=Trueas a fixed domain was tried first and broke the regression results.OMP_NUM_THREADS/MKL_NUM_THREADSis documented and tested. A hang aftertorch.set_num_threads(n)seen on one PyTorch / oneMKL build reproduces withouttam, so no engine change.[1.4.1] - 2026-10-08, version DOI10.5281/zenodo.23248249in the README BibTeX.AdaptiveTAM.predict_onlinecarry the internal name__mu__when the base is distributional; the Kalman variance after a long gap of missing targets is understated (inherited from the filter).Checklist
Fill one row per line you add to
CHANGELOG.md. "Not needed" is an answer only with its reason.math/pagearchitecture/pageREADME,THEORY, docstrings)y <= 0tests/test_distributional.py(fail on 1.4.0)02_distributional.md02_distributional_code.mdf(x, ..., period=...)tests/test_cyclic_fixed_domain.py(13; fail on 1.4.0)FOURIER.md06_the_spectrum_api.mdStaticTAM,AdaptiveTAMwindowsNone)OperaTAMpinball loss,aggregate_quantilestests/test_opera_pinball.py(5; fail on 1.4.0)05_opera_aggregation.md05_opera_gpu.mdSafetyTAM.predict_quantiles,calibrate(verbose=False)tests/test_safety.py(fail on 1.4.0)04_risk_conformal_evt.md04_risk_conformal_evt_code.mdpredict_intervals, ACItarget_transformasinh and logittests/test_target_transform.py(12; fail on 1.4.0)02_distributional.md02_distributional_code.mdStaticTAMdocstringAdaptiveTAM.predict_quantilestests/test_adaptive_quantiles.py(12; fail on 1.4.0)01_adaptive_online.md01_adaptive_code.mdKalmanTAM.predict_quantilestests/test_kalman_quantiles.py(9; fail on 1.4.0)02_kalman_filter.md02_kalman_torchscript.mdnegative_binomial,tweedie,predict_quantilesfor countstests/test_count_families.py(16; 15 fail on 1.4.0)01_reweighted_estimation.md01_reweighted_estimation_code.mdRESULTS.txt: the supported-losses text of the unknown-loss error messagetests/test_thread_limits.py(no code change)04_hardware_memory.mdCITATION.cffpytest), and the new tests were written first and fail without the change.math/for theory,architecture/for the implementation).build_docs.bat; theDocumentationworkflow runs onmainafter the merge).CHANGELOG.mdline per user-visible change, under[1.4.1](was[Unreleased]).tests/test_api_contracts.py); new ones are keyword arguments with a default.print()in new code.git commit -s, see CONTRIBUTING.md).SPDX-FileCopyrightTextandSPDX-License-Identifierheader; its author is named asSPDX-FileContributor.Pre-push verdict
READY TO PUSH against the v1.4.0 baseline, run before the release commit (which only changes versions and dates): tests pass, use cases ran, regression 0 fail / 0 warn.
RESULTS.txtdiffers from 1.4.0 by the two error-message lines above;RESULTS_EXP.txtunchanged.