autogluon.timeseries 1.3.2b20250710__py3-none-any.whl → 1.3.2b20250712__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.
- autogluon/timeseries/models/abstract/abstract_timeseries_model.py +1 -1
- autogluon/timeseries/models/autogluon_tabular/mlforecast.py +17 -9
- autogluon/timeseries/regressor.py +1 -0
- autogluon/timeseries/version.py +1 -1
- {autogluon.timeseries-1.3.2b20250710.dist-info → autogluon.timeseries-1.3.2b20250712.dist-info}/METADATA +5 -5
- {autogluon.timeseries-1.3.2b20250710.dist-info → autogluon.timeseries-1.3.2b20250712.dist-info}/RECORD +13 -13
- /autogluon.timeseries-1.3.2b20250710-py3.9-nspkg.pth → /autogluon.timeseries-1.3.2b20250712-py3.9-nspkg.pth +0 -0
- {autogluon.timeseries-1.3.2b20250710.dist-info → autogluon.timeseries-1.3.2b20250712.dist-info}/LICENSE +0 -0
- {autogluon.timeseries-1.3.2b20250710.dist-info → autogluon.timeseries-1.3.2b20250712.dist-info}/NOTICE +0 -0
- {autogluon.timeseries-1.3.2b20250710.dist-info → autogluon.timeseries-1.3.2b20250712.dist-info}/WHEEL +0 -0
- {autogluon.timeseries-1.3.2b20250710.dist-info → autogluon.timeseries-1.3.2b20250712.dist-info}/namespace_packages.txt +0 -0
- {autogluon.timeseries-1.3.2b20250710.dist-info → autogluon.timeseries-1.3.2b20250712.dist-info}/top_level.txt +0 -0
- {autogluon.timeseries-1.3.2b20250710.dist-info → autogluon.timeseries-1.3.2b20250712.dist-info}/zip-safe +0 -0
@@ -482,7 +482,7 @@ class AbstractTimeSeriesModel(TimeSeriesModelBase, TimeSeriesTunable, ABC):
|
|
482
482
|
self.covariate_regressor.fit(
|
483
483
|
train_data,
|
484
484
|
time_limit=covariate_regressor_time_limit,
|
485
|
-
verbosity=verbosity,
|
485
|
+
verbosity=verbosity - 1,
|
486
486
|
)
|
487
487
|
|
488
488
|
if self._get_tags()["can_use_train_data"]:
|
@@ -11,6 +11,7 @@ from sklearn.base import BaseEstimator
|
|
11
11
|
|
12
12
|
import autogluon.core as ag
|
13
13
|
from autogluon.core.models import AbstractModel as AbstractTabularModel
|
14
|
+
from autogluon.features import AutoMLPipelineFeatureGenerator
|
14
15
|
from autogluon.tabular.registry import ag_model_registry
|
15
16
|
from autogluon.timeseries.dataset.ts_dataframe import ITEMID, TIMESTAMP, TimeSeriesDataFrame
|
16
17
|
from autogluon.timeseries.metrics.abstract import TimeSeriesScorer
|
@@ -35,14 +36,18 @@ class TabularModel(BaseEstimator):
|
|
35
36
|
def __init__(self, model_class: Type[AbstractTabularModel], model_kwargs: Optional[dict] = None):
|
36
37
|
self.model_class = model_class
|
37
38
|
self.model_kwargs = {} if model_kwargs is None else model_kwargs
|
39
|
+
self.feature_pipeline = AutoMLPipelineFeatureGenerator()
|
38
40
|
|
39
|
-
def fit(self,
|
41
|
+
def fit(self, X: pd.DataFrame, y: pd.Series, X_val: pd.DataFrame, y_val: pd.Series, **kwargs):
|
40
42
|
self.model = self.model_class(**self.model_kwargs)
|
41
|
-
self.
|
43
|
+
X = self.feature_pipeline.fit_transform(X=X)
|
44
|
+
X_val = self.feature_pipeline.transform(X=X_val)
|
45
|
+
self.model.fit(X=X, y=y, X_val=X_val, y_val=y_val, **kwargs)
|
42
46
|
return self
|
43
47
|
|
44
|
-
def predict(self,
|
45
|
-
|
48
|
+
def predict(self, X: pd.DataFrame, **kwargs):
|
49
|
+
X = self.feature_pipeline.transform(X=X)
|
50
|
+
return self.model.predict(X=X, **kwargs)
|
46
51
|
|
47
52
|
def get_params(self, deep=True):
|
48
53
|
params = {"model_class": self.model_class, "model_kwargs": self.model_kwargs}
|
@@ -346,7 +351,7 @@ class AbstractMLForecastModel(AbstractTimeSeriesModel):
|
|
346
351
|
max_num_samples=model_params["max_num_samples"],
|
347
352
|
)
|
348
353
|
|
349
|
-
with set_loggers_level(regex=r"^autogluon
|
354
|
+
with set_loggers_level(regex=r"^autogluon\.(tabular|features).*", level=logging.ERROR):
|
350
355
|
tabular_model = self._create_tabular_model(
|
351
356
|
model_name=model_params["model_name"], model_hyperparameters=model_params["model_hyperparameters"]
|
352
357
|
)
|
@@ -356,6 +361,7 @@ class AbstractMLForecastModel(AbstractTimeSeriesModel):
|
|
356
361
|
X_val=val_df.drop(columns=[MLF_TARGET, MLF_ITEMID]),
|
357
362
|
y_val=val_df[MLF_TARGET],
|
358
363
|
time_limit=(None if time_limit is None else time_limit - (time.time() - fit_start_time)),
|
364
|
+
verbosity=verbosity - 1,
|
359
365
|
)
|
360
366
|
|
361
367
|
# We directly insert the trained model into models_ since calling _mlf.fit_models does not support X_val, y_val
|
@@ -363,12 +369,12 @@ class AbstractMLForecastModel(AbstractTimeSeriesModel):
|
|
363
369
|
|
364
370
|
self._save_residuals_std(val_df)
|
365
371
|
|
366
|
-
def get_tabular_model(self) ->
|
367
|
-
"""Get the
|
372
|
+
def get_tabular_model(self) -> TabularModel:
|
373
|
+
"""Get the underlying tabular regression model."""
|
368
374
|
assert "mean" in self._mlf.models_, "Call `fit` before calling `get_tabular_model`"
|
369
375
|
mean_estimator = self._mlf.models_["mean"]
|
370
376
|
assert isinstance(mean_estimator, TabularModel)
|
371
|
-
return mean_estimator
|
377
|
+
return mean_estimator
|
372
378
|
|
373
379
|
def _save_residuals_std(self, val_df: pd.DataFrame) -> None:
|
374
380
|
"""Compute standard deviation of residuals for each item using the validation set.
|
@@ -531,7 +537,9 @@ class DirectTabularModel(AbstractMLForecastModel):
|
|
531
537
|
"""Apply a mask that mimics the situation at prediction time when target/covariates are unknown during the
|
532
538
|
forecast horizon.
|
533
539
|
"""
|
534
|
-
|
540
|
+
# Fix seed to make the model deterministic
|
541
|
+
rng = np.random.default_rng(seed=123)
|
542
|
+
num_hidden = rng.integers(0, self.prediction_length, size=len(df))
|
535
543
|
lag_cols = [f"lag{lag}" for lag in self._target_lags]
|
536
544
|
mask = num_hidden[:, None] < self._target_lags[None] # shape [len(num_hidden), len(_target_lags)]
|
537
545
|
# use df.loc[:, lag_cols] instead of df[lag_cols] to avoid SettingWithCopyWarning
|
@@ -146,6 +146,7 @@ class GlobalCovariateRegressor(CovariateRegressor):
|
|
146
146
|
# Has no effect since the model won't be saved to disk.
|
147
147
|
# We provide path to avoid https://github.com/autogluon/autogluon/issues/4832
|
148
148
|
path="",
|
149
|
+
name=self.model_type.__name__,
|
149
150
|
)
|
150
151
|
if time_limit is not None:
|
151
152
|
time_limit_fit = self.fit_time_fraction * (time_limit - (time.monotonic() - start_time))
|
autogluon/timeseries/version.py
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.1
|
2
2
|
Name: autogluon.timeseries
|
3
|
-
Version: 1.3.
|
3
|
+
Version: 1.3.2b20250712
|
4
4
|
Summary: Fast and Accurate ML in 3 Lines of Code
|
5
5
|
Home-page: https://github.com/autogluon/autogluon
|
6
6
|
Author: AutoGluon Community
|
@@ -55,10 +55,10 @@ Requires-Dist: fugue>=0.9.0
|
|
55
55
|
Requires-Dist: tqdm<5,>=4.38
|
56
56
|
Requires-Dist: orjson~=3.9
|
57
57
|
Requires-Dist: tensorboard<3,>=2.9
|
58
|
-
Requires-Dist: autogluon.core[raytune]==1.3.
|
59
|
-
Requires-Dist: autogluon.common==1.3.
|
60
|
-
Requires-Dist: autogluon.features==1.3.
|
61
|
-
Requires-Dist: autogluon.tabular[catboost,lightgbm,xgboost]==1.3.
|
58
|
+
Requires-Dist: autogluon.core[raytune]==1.3.2b20250712
|
59
|
+
Requires-Dist: autogluon.common==1.3.2b20250712
|
60
|
+
Requires-Dist: autogluon.features==1.3.2b20250712
|
61
|
+
Requires-Dist: autogluon.tabular[catboost,lightgbm,xgboost]==1.3.2b20250712
|
62
62
|
Provides-Extra: all
|
63
63
|
Provides-Extra: tests
|
64
64
|
Requires-Dist: pytest; extra == "tests"
|
@@ -1,12 +1,12 @@
|
|
1
|
-
autogluon.timeseries-1.3.
|
1
|
+
autogluon.timeseries-1.3.2b20250712-py3.9-nspkg.pth,sha256=cQGwpuGPqg1GXscIwt-7PmME1OnSpD-7ixkikJ31WAY,554
|
2
2
|
autogluon/timeseries/__init__.py,sha256=_CrLLc1fkjen7UzWoO0Os8WZoHOgvZbHKy46I8v_4k4,304
|
3
3
|
autogluon/timeseries/evaluator.py,sha256=l642tYfTHsl8WVIq_vV6qhgAFVFr9UuZD7gLra3A_Kc,250
|
4
4
|
autogluon/timeseries/learner.py,sha256=pIn4YSOk0aqCWyBpIlwnAsFnG4h7PLXk8guFH3wFS-w,13923
|
5
5
|
autogluon/timeseries/predictor.py,sha256=u4d7-xMs669g5xxqIYuvEyGQ0P6Y8IoToiyg9zUZoy4,88168
|
6
|
-
autogluon/timeseries/regressor.py,sha256=
|
6
|
+
autogluon/timeseries/regressor.py,sha256=G0zecniv85wr8EXlXsbiqpKYHE5KeNALHRzPp_hO5qs,12001
|
7
7
|
autogluon/timeseries/splitter.py,sha256=yzPca9p2bWV-_VJAptUyyzQsxu-uixAdpMoGQtDzMD4,3205
|
8
8
|
autogluon/timeseries/trainer.py,sha256=-xdGZ4v8OTA3AzMjBJ4CwGYhmKBRsY0Q-dm6YioFOmc,57977
|
9
|
-
autogluon/timeseries/version.py,sha256=
|
9
|
+
autogluon/timeseries/version.py,sha256=C6OW_vajErF7r9El7B0X_XkhCzzEn70hhuGbhroLKSU,91
|
10
10
|
autogluon/timeseries/configs/__init__.py,sha256=BTtHIPCYeGjqgOcvqb8qPD4VNX-ICKOg6wnkew1cPOE,98
|
11
11
|
autogluon/timeseries/configs/presets_configs.py,sha256=cLat8ecLlWrI-SC5KLBDCX2SbVXaucemy2pjxJAtSY0,2543
|
12
12
|
autogluon/timeseries/dataset/__init__.py,sha256=UvnhAN5tjgxXTHoZMQDy64YMDj4Xxa68yY7NP4vAw0o,81
|
@@ -19,11 +19,11 @@ autogluon/timeseries/metrics/utils.py,sha256=HuDe1BNe8yJU4f_DKM913nNrUueoRaw6zhx
|
|
19
19
|
autogluon/timeseries/models/__init__.py,sha256=nx61eXLCxWIb-eJXpYgCw3C7naNklh_FAaKImb8EdvI,1237
|
20
20
|
autogluon/timeseries/models/presets.py,sha256=ejVCs1Uv6EwVn55uKYyb4ju0kFuuwlOaO0yVmwYbMgI,12314
|
21
21
|
autogluon/timeseries/models/abstract/__init__.py,sha256=Htfkjjc3vo92RvyM8rIlQ0PLWt3jcrCKZES07UvCMV0,146
|
22
|
-
autogluon/timeseries/models/abstract/abstract_timeseries_model.py,sha256=
|
22
|
+
autogluon/timeseries/models/abstract/abstract_timeseries_model.py,sha256=cxAZoYeLT9KsUAHlWlCH9WVw7I_L65m8CMKZBMN7LIU,33112
|
23
23
|
autogluon/timeseries/models/abstract/model_trial.py,sha256=ENPg_7nsdxIvaNM0o0UShZ3x8jFlRmwRc5m0fGPC0TM,3720
|
24
24
|
autogluon/timeseries/models/abstract/tunable.py,sha256=SFl4vjkb6BfFFaRPVdftnnLYlIyCThutLHxiiAlV6tY,7168
|
25
25
|
autogluon/timeseries/models/autogluon_tabular/__init__.py,sha256=E5fZsdFPgVdyCVyj5bGmn_lQFlCMn2NvuRLBMcCFvhM,205
|
26
|
-
autogluon/timeseries/models/autogluon_tabular/mlforecast.py,sha256=
|
26
|
+
autogluon/timeseries/models/autogluon_tabular/mlforecast.py,sha256=CBQh23Li__Gmpsv1e5ucMjeBtLFcm2CJbpgqXVNOTNY,37614
|
27
27
|
autogluon/timeseries/models/autogluon_tabular/per_step.py,sha256=qCC8ed4pqm6yoW743WJ2z1Nh6WV8-Z8EVqRwX9Lz6eE,20580
|
28
28
|
autogluon/timeseries/models/autogluon_tabular/transforms.py,sha256=aI1QJLJaOB5Xy2WA0jo6Jh25MRVyyZ8ONrqlV96kpw0,2735
|
29
29
|
autogluon/timeseries/models/autogluon_tabular/utils.py,sha256=Fn3Vu_Q0PCtEUbtNgLp1xIblg7dOdpFlF3W5kLHgruI,63
|
@@ -61,11 +61,11 @@ autogluon/timeseries/utils/datetime/base.py,sha256=3NdsH3NDq4cVAOSoy3XpaNixyNlbj
|
|
61
61
|
autogluon/timeseries/utils/datetime/lags.py,sha256=dpndFOV-d-AqCTwKeQ5Dz-AfCJTeI27bxDC13QzY4y8,6003
|
62
62
|
autogluon/timeseries/utils/datetime/seasonality.py,sha256=YK_2k8hvYIMW-sJPnjGWRtCnvIOthwA2hATB3nwVoD4,834
|
63
63
|
autogluon/timeseries/utils/datetime/time_features.py,sha256=MjLi3zQ00uWWJtXH9oGX2GJkTbvjdSiuabSa4kcVuxE,2672
|
64
|
-
autogluon.timeseries-1.3.
|
65
|
-
autogluon.timeseries-1.3.
|
66
|
-
autogluon.timeseries-1.3.
|
67
|
-
autogluon.timeseries-1.3.
|
68
|
-
autogluon.timeseries-1.3.
|
69
|
-
autogluon.timeseries-1.3.
|
70
|
-
autogluon.timeseries-1.3.
|
71
|
-
autogluon.timeseries-1.3.
|
64
|
+
autogluon.timeseries-1.3.2b20250712.dist-info/LICENSE,sha256=CeipvOyAZxBGUsFoaFqwkx54aPnIKEtm9a5u2uXxEws,10142
|
65
|
+
autogluon.timeseries-1.3.2b20250712.dist-info/METADATA,sha256=IgR6RZQbUF8j9rMAow5LpeHS1R0EdXQm62mEf1SXkV8,12443
|
66
|
+
autogluon.timeseries-1.3.2b20250712.dist-info/NOTICE,sha256=7nPQuj8Kp-uXsU0S5so3-2dNU5EctS5hDXvvzzehd7E,114
|
67
|
+
autogluon.timeseries-1.3.2b20250712.dist-info/WHEEL,sha256=tZoeGjtWxWRfdplE7E3d45VPlLNQnvbKiYnx7gwAy8A,92
|
68
|
+
autogluon.timeseries-1.3.2b20250712.dist-info/namespace_packages.txt,sha256=giERA4R78OkJf2ijn5slgjURlhRPzfLr7waIcGkzYAo,10
|
69
|
+
autogluon.timeseries-1.3.2b20250712.dist-info/top_level.txt,sha256=giERA4R78OkJf2ijn5slgjURlhRPzfLr7waIcGkzYAo,10
|
70
|
+
autogluon.timeseries-1.3.2b20250712.dist-info/zip-safe,sha256=AbpHGcgLb-kRsJGnwFEktk7uzpZOCcBY74-YBdrKVGs,1
|
71
|
+
autogluon.timeseries-1.3.2b20250712.dist-info/RECORD,,
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|