Repository navigation
v0.3.0
A correctness release: broader checks against Python Prophet 1.4.0, and the fixes they turned up.
Evaluation scores now match Python's exactly, which removes a few options and fields, so read
Removed before upgrading.
Added
FittingErrorhas amemory-limitreason for models too large for WebAssembly's 4 GiB of
memory.
Changed
- Flat growth fits the way Python does. Every flat model uses Prophet's Stan optimizer and
acceptsmap.changepointsandmap.changepointPriorScale. Models saved by earlier versions
still load and predict. - Large Fourier orders fit quickly, and models with more than 2048 parameters, which used to
fail, now fit as they do in Python. - Histories the model can fit exactly, such as noiseless data, fit with a noise scale near
zero, as in Python, instead of failing. - Standardized regressors use exactly the mean and standard deviation Python computes.
performanceMetricsmatches Python'sperformance_metricsexactly, so some scores change,
most of all rolling scores.rowsscores are sorted by horizon, as in Python.mapefails withzero-actualwhen an actual is within1e-8of zero, not only at exactly
zero.decodeEvaluationReportrejects holdout reports saved by earlier versions, because their scores
are recomputed when decoded.
Fixed
- Regressors that are not standardized no longer fail validation when their values are too large
to average.
Removed
- The
noise-collapsereason ofFittingError, which no fit returns any more. - The
mapeZeroActualoption ofperformanceMetrics,searchModelsandevaluateHoldout, with
theincludedCountandexcludedCountscore fields. To skip zero actuals, leave those rows out
before scoring. rowCounton rolling metric points, which always equals the report'swindowRows. They now
have their ownRollingMetricPointtype.- The
empty-bucketreason ofEvaluationMetricError, which can no longer happen.
Verification against Python Prophet
- Property-based tests run in every CI build and check that hostile input produces typed
errors, never crashes. - A weekly differential comparison fits hundreds of newly generated inputs with both
libraries and reports every case where Effect Prophet fits worse, with a seed that replays it.
Cases where Python's own result is unstable are reported separately. Run it locally with
npm run differential. - New fixtures cover regressor standardization, large Fourier orders and evaluation metrics.
Full Changelog: v0.2.0...v0.3.0