autogluon.timeseries 1.2.1b20250224__py3-none-any.whl → 1.4.1b20251215__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.
- autogluon/timeseries/configs/__init__.py +3 -2
- autogluon/timeseries/configs/hyperparameter_presets.py +62 -0
- autogluon/timeseries/configs/predictor_presets.py +106 -0
- autogluon/timeseries/dataset/ts_dataframe.py +256 -141
- autogluon/timeseries/learner.py +86 -52
- autogluon/timeseries/metrics/__init__.py +42 -8
- autogluon/timeseries/metrics/abstract.py +89 -19
- autogluon/timeseries/metrics/point.py +142 -53
- autogluon/timeseries/metrics/quantile.py +46 -21
- autogluon/timeseries/metrics/utils.py +4 -4
- autogluon/timeseries/models/__init__.py +8 -2
- autogluon/timeseries/models/abstract/__init__.py +2 -2
- autogluon/timeseries/models/abstract/abstract_timeseries_model.py +361 -592
- autogluon/timeseries/models/abstract/model_trial.py +2 -1
- autogluon/timeseries/models/abstract/tunable.py +189 -0
- autogluon/timeseries/models/autogluon_tabular/__init__.py +2 -0
- autogluon/timeseries/models/autogluon_tabular/mlforecast.py +282 -194
- autogluon/timeseries/models/autogluon_tabular/per_step.py +513 -0
- autogluon/timeseries/models/autogluon_tabular/transforms.py +25 -18
- autogluon/timeseries/models/chronos/__init__.py +2 -1
- autogluon/timeseries/models/chronos/chronos2.py +361 -0
- autogluon/timeseries/models/chronos/model.py +219 -138
- autogluon/timeseries/models/chronos/{pipeline/utils.py → utils.py} +81 -50
- autogluon/timeseries/models/ensemble/__init__.py +37 -2
- autogluon/timeseries/models/ensemble/abstract.py +107 -0
- autogluon/timeseries/models/ensemble/array_based/__init__.py +3 -0
- autogluon/timeseries/models/ensemble/array_based/abstract.py +240 -0
- autogluon/timeseries/models/ensemble/array_based/models.py +185 -0
- autogluon/timeseries/models/ensemble/array_based/regressor/__init__.py +12 -0
- autogluon/timeseries/models/ensemble/array_based/regressor/abstract.py +88 -0
- autogluon/timeseries/models/ensemble/array_based/regressor/linear_stacker.py +186 -0
- autogluon/timeseries/models/ensemble/array_based/regressor/per_quantile_tabular.py +94 -0
- autogluon/timeseries/models/ensemble/array_based/regressor/tabular.py +107 -0
- autogluon/timeseries/models/ensemble/ensemble_selection.py +167 -0
- autogluon/timeseries/models/ensemble/per_item_greedy.py +172 -0
- autogluon/timeseries/models/ensemble/weighted/__init__.py +8 -0
- autogluon/timeseries/models/ensemble/weighted/abstract.py +45 -0
- autogluon/timeseries/models/ensemble/weighted/basic.py +91 -0
- autogluon/timeseries/models/ensemble/weighted/greedy.py +62 -0
- autogluon/timeseries/models/gluonts/__init__.py +1 -1
- autogluon/timeseries/models/gluonts/{abstract_gluonts.py → abstract.py} +148 -208
- autogluon/timeseries/models/gluonts/dataset.py +109 -0
- autogluon/timeseries/models/gluonts/{torch/models.py → models.py} +38 -22
- autogluon/timeseries/models/local/__init__.py +0 -7
- autogluon/timeseries/models/local/abstract_local_model.py +71 -74
- autogluon/timeseries/models/local/naive.py +13 -9
- autogluon/timeseries/models/local/npts.py +9 -2
- autogluon/timeseries/models/local/statsforecast.py +52 -36
- autogluon/timeseries/models/multi_window/multi_window_model.py +65 -45
- autogluon/timeseries/models/registry.py +64 -0
- autogluon/timeseries/models/toto/__init__.py +3 -0
- autogluon/timeseries/models/toto/_internal/__init__.py +9 -0
- autogluon/timeseries/models/toto/_internal/backbone/__init__.py +3 -0
- autogluon/timeseries/models/toto/_internal/backbone/attention.py +196 -0
- autogluon/timeseries/models/toto/_internal/backbone/backbone.py +262 -0
- autogluon/timeseries/models/toto/_internal/backbone/distribution.py +70 -0
- autogluon/timeseries/models/toto/_internal/backbone/kvcache.py +136 -0
- autogluon/timeseries/models/toto/_internal/backbone/rope.py +89 -0
- autogluon/timeseries/models/toto/_internal/backbone/rotary_embedding_torch.py +342 -0
- autogluon/timeseries/models/toto/_internal/backbone/scaler.py +305 -0
- autogluon/timeseries/models/toto/_internal/backbone/transformer.py +333 -0
- autogluon/timeseries/models/toto/_internal/dataset.py +165 -0
- autogluon/timeseries/models/toto/_internal/forecaster.py +423 -0
- autogluon/timeseries/models/toto/dataloader.py +108 -0
- autogluon/timeseries/models/toto/hf_pretrained_model.py +200 -0
- autogluon/timeseries/models/toto/model.py +249 -0
- autogluon/timeseries/predictor.py +685 -297
- autogluon/timeseries/regressor.py +94 -44
- autogluon/timeseries/splitter.py +8 -32
- autogluon/timeseries/trainer/__init__.py +3 -0
- autogluon/timeseries/trainer/ensemble_composer.py +444 -0
- autogluon/timeseries/trainer/model_set_builder.py +256 -0
- autogluon/timeseries/trainer/prediction_cache.py +149 -0
- autogluon/timeseries/{trainer.py → trainer/trainer.py} +387 -390
- autogluon/timeseries/trainer/utils.py +17 -0
- autogluon/timeseries/transforms/__init__.py +2 -13
- autogluon/timeseries/transforms/covariate_scaler.py +34 -40
- autogluon/timeseries/transforms/target_scaler.py +37 -20
- autogluon/timeseries/utils/constants.py +10 -0
- autogluon/timeseries/utils/datetime/lags.py +3 -5
- autogluon/timeseries/utils/datetime/seasonality.py +1 -3
- autogluon/timeseries/utils/datetime/time_features.py +2 -2
- autogluon/timeseries/utils/features.py +70 -47
- autogluon/timeseries/utils/forecast.py +19 -14
- autogluon/timeseries/utils/timer.py +173 -0
- autogluon/timeseries/utils/warning_filters.py +4 -2
- autogluon/timeseries/version.py +1 -1
- autogluon.timeseries-1.4.1b20251215-py3.11-nspkg.pth +1 -0
- {autogluon.timeseries-1.2.1b20250224.dist-info → autogluon_timeseries-1.4.1b20251215.dist-info}/METADATA +49 -36
- autogluon_timeseries-1.4.1b20251215.dist-info/RECORD +103 -0
- {autogluon.timeseries-1.2.1b20250224.dist-info → autogluon_timeseries-1.4.1b20251215.dist-info}/WHEEL +1 -1
- autogluon/timeseries/configs/presets_configs.py +0 -79
- autogluon/timeseries/evaluator.py +0 -6
- autogluon/timeseries/models/chronos/pipeline/__init__.py +0 -11
- autogluon/timeseries/models/chronos/pipeline/base.py +0 -160
- autogluon/timeseries/models/chronos/pipeline/chronos.py +0 -585
- autogluon/timeseries/models/chronos/pipeline/chronos_bolt.py +0 -518
- autogluon/timeseries/models/ensemble/abstract_timeseries_ensemble.py +0 -78
- autogluon/timeseries/models/ensemble/greedy_ensemble.py +0 -170
- autogluon/timeseries/models/gluonts/torch/__init__.py +0 -0
- autogluon/timeseries/models/presets.py +0 -360
- autogluon.timeseries-1.2.1b20250224-py3.9-nspkg.pth +0 -1
- autogluon.timeseries-1.2.1b20250224.dist-info/RECORD +0 -68
- {autogluon.timeseries-1.2.1b20250224.dist-info → autogluon_timeseries-1.4.1b20251215.dist-info/licenses}/LICENSE +0 -0
- {autogluon.timeseries-1.2.1b20250224.dist-info → autogluon_timeseries-1.4.1b20251215.dist-info/licenses}/NOTICE +0 -0
- {autogluon.timeseries-1.2.1b20250224.dist-info → autogluon_timeseries-1.4.1b20251215.dist-info}/namespace_packages.txt +0 -0
- {autogluon.timeseries-1.2.1b20250224.dist-info → autogluon_timeseries-1.4.1b20251215.dist-info}/top_level.txt +0 -0
- {autogluon.timeseries-1.2.1b20250224.dist-info → autogluon_timeseries-1.4.1b20251215.dist-info}/zip-safe +0 -0
|
@@ -1,3 +1,4 @@
|
|
|
1
|
-
from .
|
|
1
|
+
from .hyperparameter_presets import get_hyperparameter_presets
|
|
2
|
+
from .predictor_presets import get_predictor_presets
|
|
2
3
|
|
|
3
|
-
__all__ = ["
|
|
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,106 @@
|
|
|
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-2 models
|
|
27
|
+
chronos2={
|
|
28
|
+
"hyperparameters": {"Chronos2": {"model_path": "autogluon/chronos-2"}},
|
|
29
|
+
"skip_model_selection": True,
|
|
30
|
+
},
|
|
31
|
+
chronos2_small={
|
|
32
|
+
"hyperparameters": {"Chronos2": {"model_path": "autogluon/chronos-2-small"}},
|
|
33
|
+
"skip_model_selection": True,
|
|
34
|
+
},
|
|
35
|
+
chronos2_ensemble={
|
|
36
|
+
"hyperparameters": {
|
|
37
|
+
"Chronos2": [
|
|
38
|
+
{"model_path": "autogluon/chronos-2", "ag_args": {"name_suffix": "ZeroShot"}},
|
|
39
|
+
{
|
|
40
|
+
"model_path": "autogluon/chronos-2-small",
|
|
41
|
+
"fine_tune": True,
|
|
42
|
+
"eval_during_fine_tune": True,
|
|
43
|
+
"ag_args": {"name_suffix": "SmallFineTuned"},
|
|
44
|
+
},
|
|
45
|
+
]
|
|
46
|
+
},
|
|
47
|
+
},
|
|
48
|
+
# Chronos-Bolt models
|
|
49
|
+
bolt_tiny={
|
|
50
|
+
"hyperparameters": {"Chronos": {"model_path": "bolt_tiny"}},
|
|
51
|
+
"skip_model_selection": True,
|
|
52
|
+
},
|
|
53
|
+
bolt_mini={
|
|
54
|
+
"hyperparameters": {"Chronos": {"model_path": "bolt_mini"}},
|
|
55
|
+
"skip_model_selection": True,
|
|
56
|
+
},
|
|
57
|
+
bolt_small={
|
|
58
|
+
"hyperparameters": {"Chronos": {"model_path": "bolt_small"}},
|
|
59
|
+
"skip_model_selection": True,
|
|
60
|
+
},
|
|
61
|
+
bolt_base={
|
|
62
|
+
"hyperparameters": {"Chronos": {"model_path": "bolt_base"}},
|
|
63
|
+
"skip_model_selection": True,
|
|
64
|
+
},
|
|
65
|
+
# Original Chronos models
|
|
66
|
+
chronos_tiny={
|
|
67
|
+
"hyperparameters": {"Chronos": {"model_path": "tiny"}},
|
|
68
|
+
"skip_model_selection": True,
|
|
69
|
+
},
|
|
70
|
+
chronos_mini={
|
|
71
|
+
"hyperparameters": {"Chronos": {"model_path": "mini"}},
|
|
72
|
+
"skip_model_selection": True,
|
|
73
|
+
},
|
|
74
|
+
chronos_small={
|
|
75
|
+
"hyperparameters": {"Chronos": {"model_path": "small"}},
|
|
76
|
+
"skip_model_selection": True,
|
|
77
|
+
},
|
|
78
|
+
chronos_base={
|
|
79
|
+
"hyperparameters": {"Chronos": {"model_path": "base"}},
|
|
80
|
+
"skip_model_selection": True,
|
|
81
|
+
},
|
|
82
|
+
chronos_large={
|
|
83
|
+
"hyperparameters": {"Chronos": {"model_path": "large", "batch_size": 8}},
|
|
84
|
+
"skip_model_selection": True,
|
|
85
|
+
},
|
|
86
|
+
chronos_ensemble={
|
|
87
|
+
"hyperparameters": {
|
|
88
|
+
"Chronos": {"model_path": "small"},
|
|
89
|
+
**hp_presets["light_inference"],
|
|
90
|
+
}
|
|
91
|
+
},
|
|
92
|
+
chronos_large_ensemble={
|
|
93
|
+
"hyperparameters": {
|
|
94
|
+
"Chronos": {"model_path": "large", "batch_size": 8},
|
|
95
|
+
**hp_presets["light_inference"],
|
|
96
|
+
}
|
|
97
|
+
},
|
|
98
|
+
)
|
|
99
|
+
|
|
100
|
+
# update with aliases
|
|
101
|
+
predictor_presets = {
|
|
102
|
+
**predictor_presets,
|
|
103
|
+
**{k: predictor_presets[v].copy() for k, v in TIMESERIES_PRESETS_ALIASES.items()},
|
|
104
|
+
}
|
|
105
|
+
|
|
106
|
+
return predictor_presets
|