Overview
Support for Python 3.6 is dropped (#2542).
Models:
- Added PyTorch implementation of the Temporal Fusion Transformer model (#2536)
- Various improvements to PyTorch DeepAR (#2433, #2476, #2545, #2552, #2553, #2556, #2596)
- Added wrappers for
statsforecast
models (#2360, #2515, #2561) - Added wrappers for hierarchical time series models in R (#2396, #2406, #2412)
- Updated R wrappers and dockerfile (#2571, #2572)
- Important the Naive2, Rforecast, Prophet, and Rotbaum models have been moved to
gluonts.ext
(#2362, #2597)
Data:
- Improved PandasDataset: allows specifying static features as a separate dataframe,
instead of wastefully replicate feature values over time. This was particularly problematic
in large datasets, such as M5. In the new setup, static features are provided via
a separate dataframe indexed byitem_id
, and thedtype
of each column determinins
which are numerical vs categorical features, with automated detection of cardinalities
in the latter case. See the updated tutorial notebook on how to use it.
Evaluation:
- New evaluation module
gluonts.ev
(#2450) will gradually replace the existing
gluonts.evaluation
as an improved, more flexible alternative.
Changelog
Breaking changes
- Remove folders of models that have moved to mx.model (#2356) @codingWhale13
- Remove model.common. (#2358) @jaheba
- Remove dataset.rolling_dataset. (#2361) @jaheba
- Remove DummyEstimator. (#2357) @jaheba
- Introduce gluonts.ext. (#2362) @jaheba
- Make serde.dataclass always kw-only. (#2428) @jaheba
- Add copy_dim to QuantileForecast, change dim method for multivariate data (#2352) @codingWhale13
- Include loss computation in torch DeepAR module, decouple MQF2 (#2476) @lostella
- Remove serde dump_code/load_code. (#2482) @jaheba
- Move SelfAttentionEstimator to gluonts.nursery (#2534) @lostella
- Require python 3.7. (#2542) @jaheba
- Simplify forecast.Quantile. (#2544) @jaheba
- Move shell related forecast classes to shell. (#2547) @jaheba
- Consolidate DeepNPTSEstimator (#2496) @lostella
- Improve PandasDataset (#2573) @lostella @jaheba
- Simplify PandasDataset. (#2583) @jaheba
Major improvements / new features
- Add dict like interface for Forecast. (#2384) @jaheba
- Enable dropping of columns in dataset.schema.translate. (#2387) @jaheba
- Exposing the choice of train_sampler and validation_sampler for MQCNN and MQRNN (#2381) @sighellan
- Add wrapper for statsforecast models (#2360) @lostella
- Add dataset.schema.Schema + types. (#2391) @jaheba
- Add IQN implementation (#1784) @kashif
- Add hierarchical time series reconciliation methods from R/hts: top-down and middle-out (#2396) @melopeo
- Add hierarchical time series reconciliation method from R/hts: MinT (#2406) @melopeo
- Change schema.Type to behave like invokable types. (#2443) @jaheba
- Add cdf and icdf methods for StudentT distribution (#2439) @shchur
- Better DeepAR lags for business day frequency time series. (#2433) @sighellan
- Add support for feather; incl compression. (#2452) @jaheba
- Introduce ev module (#2450) @codingWhale13 @jaheba
- Speed up PandasDataset further (#2441) @lostella
- Add Empirical Risk Minimzation (ERM) hierarchical forecasting method (#2412) @melopeo
- Update statsforecast model wrappers (#2515) @lostella
- Add nan values and explainability support for rotbaum (#2537) @zoolhasson
- Enable setting a custom imputation method in deepar pytorch (#2545) @shubhamkapoor
- Add derive_auto_fields for DeepAR PyTorch (#2552) @shubhamkapoor
- Add default_scale to MeanScaler and enable the option in DeepAR-PyTorch (#2553) @shubhamkapoor
- Add statsforecasts models (#2561) @melopeo
- Add TemporalFusionTransformer implementation in PyTorch (#2536) @shchur
- Fix r_forecast methods to work with rpy2 v3+ (#2571) @abdulfatir
- Updated dockerfile for R forecast models (#2572) @abdulfatir
- Shell: Add support for requirements.txt files. (#2582) @jaheba
- Expose
weight_decay
in torch TFT estimator class (#2603) @gorold - Allow ReduceLROnPlateau to track val_loss when validation set is available (#2614) @gorold
Minor improvements / new features
- Expose SampleForecast, QuantileForecat directly in model. (#2366) @jaheba
- Mypy fixes (#2427) @jaheba
- Add nursery.pipeline. (#2429) @jaheba
- itertools.select. (#2426) @jaheba
- Add itertools.Filter. (#2438) @jaheba
- Add itertools.trim_nans. (#2460) @jaheba
- Add itertools.inverse. (#2463) @jaheba
- Fix: sort dataset keys in error message when importing non-existing dataset (#2497) @lostella
- Few shot forecasting (#2517) @RingoIngo
- Allow passing of additional args to dataclass. (#2531) @jaheba
- Simplify linear interpolation in forecast.py (#2546) @jaheba
- Add util.lazy_property. (#2557) @jaheba
- Compact PandasDataset string representation (#2558) @lostella
- Add default args and assertions to DeepAR pytorch module, assertions (#2556) @lostella
- Update MANIFEST.in. (#2566) @jaheba
- Add util.copy_with. (#2562) @jaheba
- Add missing value imputation to Seasonal Naive (#2569) @abdulfatir
- Implement get-item for JsonLinesFile. (#2574) @jaheba
- Make itertools Map/Filter dataclasses. (#2579) @jaheba
- Add itertools.StarMap. (#2584) @jaheba
- Add gluonts.maybe. (#2585) @jaheba
- Rework maybe. (#2593) @jaheba
Bug fixes
- Fix dominick dataset bug. (#2364) @haskarb
- Proposed fix to zero seed bug. (#2379) @sighellan
- Fix rotbaum random seed and num_samples argument. (#2408) @sighellan
- Removed unused import in test.(#2409) @kashif
- Hierarchical: Make sure the input S matrix is of right dtype (#2415) @rshyamsundar
- Speed up PandasDataset for long dataframes (#2435) @lostella
- Fix frequency inference in PandasDataset (#2442) @lostella
- Fix plotting date index bug in anomaly detection example (#2446) @Amrit-Bhaskar-abhask10
- Add test cases for PandasDataset, fix missing assertion (#2453) @lostella
- Fix MANIFEST.in (#2456) @lostella
- Fix pandas issue with inferring start of X frequency. (#2462) @jaheba
- Change default forecast_type of ND metric to median (#2472) @codingWhale13
- Fix: use right context in DeepVARHierarchicalEstimator (#2478) @c3-ziqin
- Add requirement files to MANIFEST.in (#2490) @jaheba
- Fix dataclass handling of member inheritance. (#2492) @jaheba
- Fix DateSplitter for multiples of base frequencies (#2500) @lostella
- Fix serde.dataclass inheritance handling. (#2512) @jaheba
- Fix QuantileForecast.quantile in case only mean is stored (#2513) @lostella
- Fix aggregate_valid for non-numerical columns (#2526) @lostella
- Fix dataclass eventual handling. (#2530) @jaheba
- Change SeasonalNaive fallback predictor to nanmean (#2549) @abdulfatir
- Fix: add missing params in rotbaum (#2554) @zoolhasson
- Add NaN validation to Evaluator (#2568) @abdulfatir
- Fix: avoid automatic device detection via serialized tensors when deserializing (#2576) @shubhamkapoor
- serde: Fix encoding of dtypes. (#2586) @jaheba
- Fix bug with static features in PandasDataset (#2589) @lostella
- Fix maybe map_or/map_or_else return types. (#2588) @jaheba
- Add assertion to split function ensuring valid windows (#2587) @MarcelK1102
- Ensure dtype on feat_time in torch DeepAR. (#2596) @jaheba
- Expose aggregation method in ensemble NBEATS, fix forecast shape (#2598) @lostella
- Fix bug with static cardinalities in
PandasDataset
(#2599) @lostella - Add
gluonts.util.safe_extract
(#2606) @lostella - Fix incorrect import in
tsbench
, apply latest black (#2613) @lostella
Documentation
- Udpate DeepAR import in README. (#2359) @codingWhale13
- Remove strange quoting marks from docstrings (#2368) @lostella
- Change 'confidence interval' to 'prediction interval' (#2373) @codingWhale13
- Fix use of dump_code in tutorial. (#2488) @jaheba
- Fix docstrings according to docformatter (#2501) @lostella
- Docs: Fix install instructions. (#2508) @jaheba
- Add examples to docstring for periods_between (#2504) @lostella
- Add info on how versioning works. (#2529) @jaheba
- Improve README example (#2538) @lostella
- Update REFERENCES.md @dcmaddix
Test / setup changes
- Update workflow actions to latest versions (#2447) @lostella
- Tests: Change Python versions. (#2448) @jaheba
- Use ruff instead of flake8. (#2485) @jaheba
- Apply ruff/pyupgrade to test. (#2489) @jaheba
- Add smoke tests for torch models (#2495) @lostella
- Pin docformatter version. (#2507) @jaheba
- Cap numpy compatibility in mxnet extra requirements (#2506) @lostella
- Clean up test code for evaluator (#2505) @lostella
- Remove mypy plugin for dataclass. (#2514) @jaheba
- GH Actions: Use authenticated requests for just. (#2522) @jaheba
- Simplify setup.py (#2525) @jaheba
- Test: Only check relevant require-packages.txt for test run. (#2595) @Jahaba
- Fix version in requirements to comply with stricter setuptools. (#2604) @lostella