autogluon.timeseries 1.0.1b20240304__py3-none-any.whl → 1.4.1b20251210__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.

Potentially problematic release.


This version of autogluon.timeseries might be problematic. Click here for more details.

Files changed (108) hide show
  1. autogluon/timeseries/configs/__init__.py +3 -2
  2. autogluon/timeseries/configs/hyperparameter_presets.py +62 -0
  3. autogluon/timeseries/configs/predictor_presets.py +84 -0
  4. autogluon/timeseries/dataset/ts_dataframe.py +339 -186
  5. autogluon/timeseries/learner.py +192 -60
  6. autogluon/timeseries/metrics/__init__.py +55 -11
  7. autogluon/timeseries/metrics/abstract.py +96 -25
  8. autogluon/timeseries/metrics/point.py +186 -39
  9. autogluon/timeseries/metrics/quantile.py +47 -20
  10. autogluon/timeseries/metrics/utils.py +6 -6
  11. autogluon/timeseries/models/__init__.py +13 -7
  12. autogluon/timeseries/models/abstract/__init__.py +2 -2
  13. autogluon/timeseries/models/abstract/abstract_timeseries_model.py +533 -273
  14. autogluon/timeseries/models/abstract/model_trial.py +10 -10
  15. autogluon/timeseries/models/abstract/tunable.py +189 -0
  16. autogluon/timeseries/models/autogluon_tabular/__init__.py +2 -0
  17. autogluon/timeseries/models/autogluon_tabular/mlforecast.py +369 -215
  18. autogluon/timeseries/models/autogluon_tabular/per_step.py +513 -0
  19. autogluon/timeseries/models/autogluon_tabular/transforms.py +67 -0
  20. autogluon/timeseries/models/autogluon_tabular/utils.py +3 -51
  21. autogluon/timeseries/models/chronos/__init__.py +4 -0
  22. autogluon/timeseries/models/chronos/chronos2.py +361 -0
  23. autogluon/timeseries/models/chronos/model.py +738 -0
  24. autogluon/timeseries/models/chronos/utils.py +369 -0
  25. autogluon/timeseries/models/ensemble/__init__.py +35 -2
  26. autogluon/timeseries/models/ensemble/{abstract_timeseries_ensemble.py → abstract.py} +50 -26
  27. autogluon/timeseries/models/ensemble/array_based/__init__.py +3 -0
  28. autogluon/timeseries/models/ensemble/array_based/abstract.py +236 -0
  29. autogluon/timeseries/models/ensemble/array_based/models.py +73 -0
  30. autogluon/timeseries/models/ensemble/array_based/regressor/__init__.py +12 -0
  31. autogluon/timeseries/models/ensemble/array_based/regressor/abstract.py +88 -0
  32. autogluon/timeseries/models/ensemble/array_based/regressor/linear_stacker.py +167 -0
  33. autogluon/timeseries/models/ensemble/array_based/regressor/per_quantile_tabular.py +94 -0
  34. autogluon/timeseries/models/ensemble/array_based/regressor/tabular.py +107 -0
  35. autogluon/timeseries/models/ensemble/ensemble_selection.py +167 -0
  36. autogluon/timeseries/models/ensemble/per_item_greedy.py +162 -0
  37. autogluon/timeseries/models/ensemble/weighted/__init__.py +8 -0
  38. autogluon/timeseries/models/ensemble/weighted/abstract.py +40 -0
  39. autogluon/timeseries/models/ensemble/weighted/basic.py +78 -0
  40. autogluon/timeseries/models/ensemble/weighted/greedy.py +57 -0
  41. autogluon/timeseries/models/gluonts/__init__.py +3 -1
  42. autogluon/timeseries/models/gluonts/abstract.py +583 -0
  43. autogluon/timeseries/models/gluonts/dataset.py +109 -0
  44. autogluon/timeseries/models/gluonts/{torch/models.py → models.py} +185 -44
  45. autogluon/timeseries/models/local/__init__.py +1 -10
  46. autogluon/timeseries/models/local/abstract_local_model.py +150 -97
  47. autogluon/timeseries/models/local/naive.py +31 -23
  48. autogluon/timeseries/models/local/npts.py +6 -2
  49. autogluon/timeseries/models/local/statsforecast.py +99 -112
  50. autogluon/timeseries/models/multi_window/multi_window_model.py +99 -40
  51. autogluon/timeseries/models/registry.py +64 -0
  52. autogluon/timeseries/models/toto/__init__.py +3 -0
  53. autogluon/timeseries/models/toto/_internal/__init__.py +9 -0
  54. autogluon/timeseries/models/toto/_internal/backbone/__init__.py +3 -0
  55. autogluon/timeseries/models/toto/_internal/backbone/attention.py +196 -0
  56. autogluon/timeseries/models/toto/_internal/backbone/backbone.py +262 -0
  57. autogluon/timeseries/models/toto/_internal/backbone/distribution.py +70 -0
  58. autogluon/timeseries/models/toto/_internal/backbone/kvcache.py +136 -0
  59. autogluon/timeseries/models/toto/_internal/backbone/rope.py +89 -0
  60. autogluon/timeseries/models/toto/_internal/backbone/rotary_embedding_torch.py +342 -0
  61. autogluon/timeseries/models/toto/_internal/backbone/scaler.py +305 -0
  62. autogluon/timeseries/models/toto/_internal/backbone/transformer.py +333 -0
  63. autogluon/timeseries/models/toto/_internal/dataset.py +165 -0
  64. autogluon/timeseries/models/toto/_internal/forecaster.py +423 -0
  65. autogluon/timeseries/models/toto/dataloader.py +108 -0
  66. autogluon/timeseries/models/toto/hf_pretrained_model.py +118 -0
  67. autogluon/timeseries/models/toto/model.py +236 -0
  68. autogluon/timeseries/predictor.py +826 -305
  69. autogluon/timeseries/regressor.py +253 -0
  70. autogluon/timeseries/splitter.py +10 -31
  71. autogluon/timeseries/trainer/__init__.py +2 -3
  72. autogluon/timeseries/trainer/ensemble_composer.py +439 -0
  73. autogluon/timeseries/trainer/model_set_builder.py +256 -0
  74. autogluon/timeseries/trainer/prediction_cache.py +149 -0
  75. autogluon/timeseries/trainer/trainer.py +1298 -0
  76. autogluon/timeseries/trainer/utils.py +17 -0
  77. autogluon/timeseries/transforms/__init__.py +2 -0
  78. autogluon/timeseries/transforms/covariate_scaler.py +164 -0
  79. autogluon/timeseries/transforms/target_scaler.py +149 -0
  80. autogluon/timeseries/utils/constants.py +10 -0
  81. autogluon/timeseries/utils/datetime/base.py +38 -20
  82. autogluon/timeseries/utils/datetime/lags.py +18 -16
  83. autogluon/timeseries/utils/datetime/seasonality.py +14 -14
  84. autogluon/timeseries/utils/datetime/time_features.py +17 -14
  85. autogluon/timeseries/utils/features.py +317 -53
  86. autogluon/timeseries/utils/forecast.py +31 -17
  87. autogluon/timeseries/utils/timer.py +173 -0
  88. autogluon/timeseries/utils/warning_filters.py +44 -6
  89. autogluon/timeseries/version.py +2 -1
  90. autogluon.timeseries-1.4.1b20251210-py3.11-nspkg.pth +1 -0
  91. {autogluon.timeseries-1.0.1b20240304.dist-info → autogluon_timeseries-1.4.1b20251210.dist-info}/METADATA +71 -47
  92. autogluon_timeseries-1.4.1b20251210.dist-info/RECORD +103 -0
  93. {autogluon.timeseries-1.0.1b20240304.dist-info → autogluon_timeseries-1.4.1b20251210.dist-info}/WHEEL +1 -1
  94. autogluon/timeseries/configs/presets_configs.py +0 -11
  95. autogluon/timeseries/evaluator.py +0 -6
  96. autogluon/timeseries/models/ensemble/greedy_ensemble.py +0 -170
  97. autogluon/timeseries/models/gluonts/abstract_gluonts.py +0 -550
  98. autogluon/timeseries/models/gluonts/torch/__init__.py +0 -0
  99. autogluon/timeseries/models/presets.py +0 -325
  100. autogluon/timeseries/trainer/abstract_trainer.py +0 -1144
  101. autogluon/timeseries/trainer/auto_trainer.py +0 -74
  102. autogluon.timeseries-1.0.1b20240304-py3.8-nspkg.pth +0 -1
  103. autogluon.timeseries-1.0.1b20240304.dist-info/RECORD +0 -58
  104. {autogluon.timeseries-1.0.1b20240304.dist-info → autogluon_timeseries-1.4.1b20251210.dist-info/licenses}/LICENSE +0 -0
  105. {autogluon.timeseries-1.0.1b20240304.dist-info → autogluon_timeseries-1.4.1b20251210.dist-info/licenses}/NOTICE +0 -0
  106. {autogluon.timeseries-1.0.1b20240304.dist-info → autogluon_timeseries-1.4.1b20251210.dist-info}/namespace_packages.txt +0 -0
  107. {autogluon.timeseries-1.0.1b20240304.dist-info → autogluon_timeseries-1.4.1b20251210.dist-info}/top_level.txt +0 -0
  108. {autogluon.timeseries-1.0.1b20240304.dist-info → autogluon_timeseries-1.4.1b20251210.dist-info}/zip-safe +0 -0
@@ -1,3 +1,4 @@
1
- from .presets_configs import TIMESERIES_PRESETS_CONFIGS
1
+ from .hyperparameter_presets import get_hyperparameter_presets
2
+ from .predictor_presets import get_predictor_presets
2
3
 
3
- __all__ = ["TIMESERIES_PRESETS_CONFIGS"]
4
+ __all__ = ["get_hyperparameter_presets", "get_predictor_presets"]
@@ -0,0 +1,62 @@
1
+ from typing import Any
2
+
3
+
4
+ def get_hyperparameter_presets() -> dict[str, dict[str, dict[str, Any] | list[dict[str, Any]]]]:
5
+ return {
6
+ "very_light": {
7
+ "Naive": {},
8
+ "SeasonalNaive": {},
9
+ "ETS": {},
10
+ "Theta": {},
11
+ "RecursiveTabular": {"max_num_samples": 100_000},
12
+ "DirectTabular": {"max_num_samples": 100_000},
13
+ },
14
+ "light": {
15
+ "Naive": {},
16
+ "SeasonalNaive": {},
17
+ "ETS": {},
18
+ "Theta": {},
19
+ "RecursiveTabular": {},
20
+ "DirectTabular": {},
21
+ "TemporalFusionTransformer": {},
22
+ "Chronos": {"model_path": "bolt_small"},
23
+ },
24
+ "light_inference": {
25
+ "SeasonalNaive": {},
26
+ "DirectTabular": {},
27
+ "RecursiveTabular": {},
28
+ "TemporalFusionTransformer": {},
29
+ "PatchTST": {},
30
+ },
31
+ "default": {
32
+ "SeasonalNaive": {},
33
+ "AutoETS": {},
34
+ "NPTS": {},
35
+ "DynamicOptimizedTheta": {},
36
+ "RecursiveTabular": {},
37
+ "DirectTabular": {},
38
+ "TemporalFusionTransformer": {},
39
+ "PatchTST": {},
40
+ "DeepAR": {},
41
+ "Chronos": [
42
+ {
43
+ "ag_args": {"name_suffix": "ZeroShot"},
44
+ "model_path": "bolt_base",
45
+ },
46
+ {
47
+ "ag_args": {"name_suffix": "FineTuned"},
48
+ "model_path": "bolt_small",
49
+ "fine_tune": True,
50
+ "target_scaler": "standard",
51
+ "covariate_regressor": {"model_name": "CAT", "model_hyperparameters": {"iterations": 1_000}},
52
+ },
53
+ ],
54
+ "TiDE": {
55
+ "encoder_hidden_dim": 256,
56
+ "decoder_hidden_dim": 256,
57
+ "temporal_hidden_dim": 64,
58
+ "num_batches_per_epoch": 100,
59
+ "lr": 1e-4,
60
+ },
61
+ },
62
+ }
@@ -0,0 +1,84 @@
1
+ """Preset configurations for autogluon.timeseries Predictors"""
2
+
3
+ from typing import Any
4
+
5
+ from . import get_hyperparameter_presets
6
+
7
+ TIMESERIES_PRESETS_ALIASES = dict(
8
+ chronos="chronos_small",
9
+ best="best_quality",
10
+ high="high_quality",
11
+ medium="medium_quality",
12
+ bq="best_quality",
13
+ hq="high_quality",
14
+ mq="medium_quality",
15
+ )
16
+
17
+
18
+ def get_predictor_presets() -> dict[str, Any]:
19
+ hp_presets = get_hyperparameter_presets()
20
+
21
+ predictor_presets = dict(
22
+ best_quality={"hyperparameters": "default", "num_val_windows": 2},
23
+ high_quality={"hyperparameters": "default"},
24
+ medium_quality={"hyperparameters": "light"},
25
+ fast_training={"hyperparameters": "very_light"},
26
+ # Chronos-Bolt models
27
+ bolt_tiny={
28
+ "hyperparameters": {"Chronos": {"model_path": "bolt_tiny"}},
29
+ "skip_model_selection": True,
30
+ },
31
+ bolt_mini={
32
+ "hyperparameters": {"Chronos": {"model_path": "bolt_mini"}},
33
+ "skip_model_selection": True,
34
+ },
35
+ bolt_small={
36
+ "hyperparameters": {"Chronos": {"model_path": "bolt_small"}},
37
+ "skip_model_selection": True,
38
+ },
39
+ bolt_base={
40
+ "hyperparameters": {"Chronos": {"model_path": "bolt_base"}},
41
+ "skip_model_selection": True,
42
+ },
43
+ # Original Chronos models
44
+ chronos_tiny={
45
+ "hyperparameters": {"Chronos": {"model_path": "tiny"}},
46
+ "skip_model_selection": True,
47
+ },
48
+ chronos_mini={
49
+ "hyperparameters": {"Chronos": {"model_path": "mini"}},
50
+ "skip_model_selection": True,
51
+ },
52
+ chronos_small={
53
+ "hyperparameters": {"Chronos": {"model_path": "small"}},
54
+ "skip_model_selection": True,
55
+ },
56
+ chronos_base={
57
+ "hyperparameters": {"Chronos": {"model_path": "base"}},
58
+ "skip_model_selection": True,
59
+ },
60
+ chronos_large={
61
+ "hyperparameters": {"Chronos": {"model_path": "large", "batch_size": 8}},
62
+ "skip_model_selection": True,
63
+ },
64
+ chronos_ensemble={
65
+ "hyperparameters": {
66
+ "Chronos": {"model_path": "small"},
67
+ **hp_presets["light_inference"],
68
+ }
69
+ },
70
+ chronos_large_ensemble={
71
+ "hyperparameters": {
72
+ "Chronos": {"model_path": "large", "batch_size": 8},
73
+ **hp_presets["light_inference"],
74
+ }
75
+ },
76
+ )
77
+
78
+ # update with aliases
79
+ predictor_presets = {
80
+ **predictor_presets,
81
+ **{k: predictor_presets[v].copy() for k, v in TIMESERIES_PRESETS_ALIASES.items()},
82
+ }
83
+
84
+ return predictor_presets