autogluon.timeseries 0.8.3b20231025__tar.gz → 0.8.3b20231027__tar.gz
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-0.8.3b20231025 → autogluon.timeseries-0.8.3b20231027}/PKG-INFO +1 -1
- {autogluon.timeseries-0.8.3b20231025 → autogluon.timeseries-0.8.3b20231027}/setup.py +2 -1
- {autogluon.timeseries-0.8.3b20231025 → autogluon.timeseries-0.8.3b20231027}/src/autogluon/timeseries/metrics/point.py +4 -2
- {autogluon.timeseries-0.8.3b20231025 → autogluon.timeseries-0.8.3b20231027}/src/autogluon/timeseries/models/autogluon_tabular/mlforecast.py +14 -16
- {autogluon.timeseries-0.8.3b20231025 → autogluon.timeseries-0.8.3b20231027}/src/autogluon/timeseries/version.py +1 -1
- {autogluon.timeseries-0.8.3b20231025 → autogluon.timeseries-0.8.3b20231027}/src/autogluon.timeseries.egg-info/PKG-INFO +1 -1
- {autogluon.timeseries-0.8.3b20231025 → autogluon.timeseries-0.8.3b20231027}/src/autogluon.timeseries.egg-info/requires.txt +5 -4
- {autogluon.timeseries-0.8.3b20231025 → autogluon.timeseries-0.8.3b20231027}/setup.cfg +0 -0
- {autogluon.timeseries-0.8.3b20231025 → autogluon.timeseries-0.8.3b20231027}/src/autogluon/timeseries/__init__.py +0 -0
- {autogluon.timeseries-0.8.3b20231025 → autogluon.timeseries-0.8.3b20231027}/src/autogluon/timeseries/configs/__init__.py +0 -0
- {autogluon.timeseries-0.8.3b20231025 → autogluon.timeseries-0.8.3b20231027}/src/autogluon/timeseries/configs/presets_configs.py +0 -0
- {autogluon.timeseries-0.8.3b20231025 → autogluon.timeseries-0.8.3b20231027}/src/autogluon/timeseries/dataset/__init__.py +0 -0
- {autogluon.timeseries-0.8.3b20231025 → autogluon.timeseries-0.8.3b20231027}/src/autogluon/timeseries/dataset/ts_dataframe.py +0 -0
- {autogluon.timeseries-0.8.3b20231025 → autogluon.timeseries-0.8.3b20231027}/src/autogluon/timeseries/evaluator.py +0 -0
- {autogluon.timeseries-0.8.3b20231025 → autogluon.timeseries-0.8.3b20231027}/src/autogluon/timeseries/learner.py +0 -0
- {autogluon.timeseries-0.8.3b20231025 → autogluon.timeseries-0.8.3b20231027}/src/autogluon/timeseries/metrics/__init__.py +0 -0
- {autogluon.timeseries-0.8.3b20231025 → autogluon.timeseries-0.8.3b20231027}/src/autogluon/timeseries/metrics/abstract.py +0 -0
- {autogluon.timeseries-0.8.3b20231025 → autogluon.timeseries-0.8.3b20231027}/src/autogluon/timeseries/metrics/quantile.py +0 -0
- {autogluon.timeseries-0.8.3b20231025 → autogluon.timeseries-0.8.3b20231027}/src/autogluon/timeseries/metrics/utils.py +0 -0
- {autogluon.timeseries-0.8.3b20231025 → autogluon.timeseries-0.8.3b20231027}/src/autogluon/timeseries/models/__init__.py +0 -0
- {autogluon.timeseries-0.8.3b20231025 → autogluon.timeseries-0.8.3b20231027}/src/autogluon/timeseries/models/abstract/__init__.py +0 -0
- {autogluon.timeseries-0.8.3b20231025 → autogluon.timeseries-0.8.3b20231027}/src/autogluon/timeseries/models/abstract/abstract_timeseries_model.py +0 -0
- {autogluon.timeseries-0.8.3b20231025 → autogluon.timeseries-0.8.3b20231027}/src/autogluon/timeseries/models/abstract/model_trial.py +0 -0
- {autogluon.timeseries-0.8.3b20231025 → autogluon.timeseries-0.8.3b20231027}/src/autogluon/timeseries/models/autogluon_tabular/__init__.py +0 -0
- {autogluon.timeseries-0.8.3b20231025 → autogluon.timeseries-0.8.3b20231027}/src/autogluon/timeseries/models/autogluon_tabular/utils.py +0 -0
- {autogluon.timeseries-0.8.3b20231025 → autogluon.timeseries-0.8.3b20231027}/src/autogluon/timeseries/models/ensemble/__init__.py +0 -0
- {autogluon.timeseries-0.8.3b20231025 → autogluon.timeseries-0.8.3b20231027}/src/autogluon/timeseries/models/ensemble/abstract_timeseries_ensemble.py +0 -0
- {autogluon.timeseries-0.8.3b20231025 → autogluon.timeseries-0.8.3b20231027}/src/autogluon/timeseries/models/ensemble/greedy_ensemble.py +0 -0
- {autogluon.timeseries-0.8.3b20231025 → autogluon.timeseries-0.8.3b20231027}/src/autogluon/timeseries/models/gluonts/__init__.py +0 -0
- {autogluon.timeseries-0.8.3b20231025 → autogluon.timeseries-0.8.3b20231027}/src/autogluon/timeseries/models/gluonts/abstract_gluonts.py +0 -0
- {autogluon.timeseries-0.8.3b20231025 → autogluon.timeseries-0.8.3b20231027}/src/autogluon/timeseries/models/gluonts/torch/__init__.py +0 -0
- {autogluon.timeseries-0.8.3b20231025 → autogluon.timeseries-0.8.3b20231027}/src/autogluon/timeseries/models/gluonts/torch/models.py +0 -0
- {autogluon.timeseries-0.8.3b20231025 → autogluon.timeseries-0.8.3b20231027}/src/autogluon/timeseries/models/local/__init__.py +0 -0
- {autogluon.timeseries-0.8.3b20231025 → autogluon.timeseries-0.8.3b20231027}/src/autogluon/timeseries/models/local/abstract_local_model.py +0 -0
- {autogluon.timeseries-0.8.3b20231025 → autogluon.timeseries-0.8.3b20231027}/src/autogluon/timeseries/models/local/naive.py +0 -0
- {autogluon.timeseries-0.8.3b20231025 → autogluon.timeseries-0.8.3b20231027}/src/autogluon/timeseries/models/local/npts.py +0 -0
- {autogluon.timeseries-0.8.3b20231025 → autogluon.timeseries-0.8.3b20231027}/src/autogluon/timeseries/models/local/statsforecast.py +0 -0
- {autogluon.timeseries-0.8.3b20231025 → autogluon.timeseries-0.8.3b20231027}/src/autogluon/timeseries/models/multi_window/__init__.py +0 -0
- {autogluon.timeseries-0.8.3b20231025 → autogluon.timeseries-0.8.3b20231027}/src/autogluon/timeseries/models/multi_window/multi_window_model.py +0 -0
- {autogluon.timeseries-0.8.3b20231025 → autogluon.timeseries-0.8.3b20231027}/src/autogluon/timeseries/models/presets.py +0 -0
- {autogluon.timeseries-0.8.3b20231025 → autogluon.timeseries-0.8.3b20231027}/src/autogluon/timeseries/predictor.py +0 -0
- {autogluon.timeseries-0.8.3b20231025 → autogluon.timeseries-0.8.3b20231027}/src/autogluon/timeseries/splitter.py +0 -0
- {autogluon.timeseries-0.8.3b20231025 → autogluon.timeseries-0.8.3b20231027}/src/autogluon/timeseries/trainer/__init__.py +0 -0
- {autogluon.timeseries-0.8.3b20231025 → autogluon.timeseries-0.8.3b20231027}/src/autogluon/timeseries/trainer/abstract_trainer.py +0 -0
- {autogluon.timeseries-0.8.3b20231025 → autogluon.timeseries-0.8.3b20231027}/src/autogluon/timeseries/trainer/auto_trainer.py +0 -0
- {autogluon.timeseries-0.8.3b20231025 → autogluon.timeseries-0.8.3b20231027}/src/autogluon/timeseries/utils/__init__.py +0 -0
- {autogluon.timeseries-0.8.3b20231025 → autogluon.timeseries-0.8.3b20231027}/src/autogluon/timeseries/utils/datetime/__init__.py +0 -0
- {autogluon.timeseries-0.8.3b20231025 → autogluon.timeseries-0.8.3b20231027}/src/autogluon/timeseries/utils/datetime/base.py +0 -0
- {autogluon.timeseries-0.8.3b20231025 → autogluon.timeseries-0.8.3b20231027}/src/autogluon/timeseries/utils/datetime/lags.py +0 -0
- {autogluon.timeseries-0.8.3b20231025 → autogluon.timeseries-0.8.3b20231027}/src/autogluon/timeseries/utils/datetime/seasonality.py +0 -0
- {autogluon.timeseries-0.8.3b20231025 → autogluon.timeseries-0.8.3b20231027}/src/autogluon/timeseries/utils/datetime/time_features.py +0 -0
- {autogluon.timeseries-0.8.3b20231025 → autogluon.timeseries-0.8.3b20231027}/src/autogluon/timeseries/utils/features.py +0 -0
- {autogluon.timeseries-0.8.3b20231025 → autogluon.timeseries-0.8.3b20231027}/src/autogluon/timeseries/utils/forecast.py +0 -0
- {autogluon.timeseries-0.8.3b20231025 → autogluon.timeseries-0.8.3b20231027}/src/autogluon/timeseries/utils/warning_filters.py +0 -0
- {autogluon.timeseries-0.8.3b20231025 → autogluon.timeseries-0.8.3b20231027}/src/autogluon.timeseries.egg-info/SOURCES.txt +0 -0
- {autogluon.timeseries-0.8.3b20231025 → autogluon.timeseries-0.8.3b20231027}/src/autogluon.timeseries.egg-info/dependency_links.txt +0 -0
- {autogluon.timeseries-0.8.3b20231025 → autogluon.timeseries-0.8.3b20231027}/src/autogluon.timeseries.egg-info/namespace_packages.txt +0 -0
- {autogluon.timeseries-0.8.3b20231025 → autogluon.timeseries-0.8.3b20231027}/src/autogluon.timeseries.egg-info/top_level.txt +0 -0
- {autogluon.timeseries-0.8.3b20231025 → autogluon.timeseries-0.8.3b20231027}/src/autogluon.timeseries.egg-info/zip-safe +0 -0
|
@@ -33,7 +33,8 @@ install_requires = [
|
|
|
33
33
|
"networkx", # version range defined in `core/_setup_utils.py`
|
|
34
34
|
# TODO: update statsforecast to v1.5.0 - resolve antlr4-python3-runtime dependency clash with multimodal
|
|
35
35
|
"statsforecast>=1.4.0,<1.5",
|
|
36
|
-
"mlforecast>=0.
|
|
36
|
+
"mlforecast>=0.10.0,<0.10.1",
|
|
37
|
+
"utilsforecast>=0.0.10,<0.0.11",
|
|
37
38
|
"tqdm", # version range defined in `core/_setup_utils.py`
|
|
38
39
|
"ujson>=5,<6", # needed to silence GluonTS warning
|
|
39
40
|
f"autogluon.core[raytune]=={version}",
|
|
@@ -64,7 +64,8 @@ class WAPE(TimeSeriesScorer):
|
|
|
64
64
|
|
|
65
65
|
|
|
66
66
|
class sMAPE(TimeSeriesScorer):
|
|
67
|
-
"Symmetric mean absolute percentage error."
|
|
67
|
+
"""Symmetric mean absolute percentage error."""
|
|
68
|
+
|
|
68
69
|
optimized_by_median = True
|
|
69
70
|
equivalent_tabular_regression_metric = "symmetric_mean_absolute_percentage_error"
|
|
70
71
|
|
|
@@ -76,7 +77,8 @@ class sMAPE(TimeSeriesScorer):
|
|
|
76
77
|
|
|
77
78
|
|
|
78
79
|
class MAPE(TimeSeriesScorer):
|
|
79
|
-
"Mean Absolute Percentage Error."
|
|
80
|
+
"""Mean Absolute Percentage Error."""
|
|
81
|
+
|
|
80
82
|
optimized_by_median = True
|
|
81
83
|
equivalent_tabular_regression_metric = "mean_absolute_percentage_error"
|
|
82
84
|
|
|
@@ -174,7 +174,8 @@ class AbstractMLForecastModel(AbstractTimeSeriesModel):
|
|
|
174
174
|
data = data.query("item_id in @items_to_keep")
|
|
175
175
|
|
|
176
176
|
mlforecast_df = self._to_mlforecast_df(data, data.static_features)
|
|
177
|
-
|
|
177
|
+
# Unless we set static_features=[], MLForecast interprets all known covariates as static features
|
|
178
|
+
df = self._mlf.preprocess(mlforecast_df, dropna=False, static_features=[])
|
|
178
179
|
# df.query results in 2x memory saving compared to df.dropna(subset="y")
|
|
179
180
|
df = df.query("y.notnull()")
|
|
180
181
|
|
|
@@ -366,7 +367,7 @@ class DirectTabularModel(AbstractMLForecastModel):
|
|
|
366
367
|
data_future[self.target] = float("inf")
|
|
367
368
|
data_extended = pd.concat([data, data_future])
|
|
368
369
|
mlforecast_df = self._to_mlforecast_df(data_extended, data.static_features)
|
|
369
|
-
df = self._mlf.preprocess(mlforecast_df, dropna=False)
|
|
370
|
+
df = self._mlf.preprocess(mlforecast_df, dropna=False, static_features=[])
|
|
370
371
|
df = df.groupby(MLF_ITEMID, sort=False).tail(self.prediction_length)
|
|
371
372
|
df = df.replace(float("inf"), float("nan"))
|
|
372
373
|
|
|
@@ -376,7 +377,7 @@ class DirectTabularModel(AbstractMLForecastModel):
|
|
|
376
377
|
|
|
377
378
|
if hasattr(self._mlf.ts, "target_transforms"):
|
|
378
379
|
# Ensure that transforms are fitted only on past data
|
|
379
|
-
self._mlf.preprocess(self._to_mlforecast_df(data, None))
|
|
380
|
+
self._mlf.preprocess(self._to_mlforecast_df(data, None), static_features=[])
|
|
380
381
|
for tfm in self._mlf.ts.target_transforms[::-1]:
|
|
381
382
|
predictions = tfm.inverse_transform(predictions)
|
|
382
383
|
predictions = predictions.rename(columns={MLF_ITEMID: ITEMID, MLF_TIMESTAMP: TIMESTAMP}).set_index(
|
|
@@ -405,12 +406,9 @@ class DirectTabularModel(AbstractMLForecastModel):
|
|
|
405
406
|
"eval_metric": "pinball_loss",
|
|
406
407
|
}
|
|
407
408
|
else:
|
|
408
|
-
tabular_metric = self.eval_metric.equivalent_tabular_regression_metric
|
|
409
|
-
if tabular_metric is None:
|
|
410
|
-
tabular_metric = "mean_absolute_error"
|
|
411
409
|
return {
|
|
412
410
|
"problem_type": ag.constants.REGRESSION,
|
|
413
|
-
"eval_metric":
|
|
411
|
+
"eval_metric": self.eval_metric.equivalent_tabular_regression_metric or "mean_absolute_error",
|
|
414
412
|
}
|
|
415
413
|
|
|
416
414
|
|
|
@@ -470,15 +468,18 @@ class RecursiveTabularModel(AbstractMLForecastModel):
|
|
|
470
468
|
from scipy.stats import norm
|
|
471
469
|
|
|
472
470
|
new_df = self._to_mlforecast_df(data, data.static_features)
|
|
473
|
-
if known_covariates is
|
|
474
|
-
|
|
475
|
-
|
|
476
|
-
|
|
471
|
+
if known_covariates is None:
|
|
472
|
+
future_index = get_forecast_horizon_index_ts_dataframe(data, self.prediction_length)
|
|
473
|
+
known_covariates = pd.DataFrame(columns=[self.target], index=future_index, dtype="float32")
|
|
474
|
+
X_df = self._to_mlforecast_df(known_covariates, data.static_features, include_target=False)
|
|
475
|
+
# If both covariates & static features are missing, set X_df = None to avoid exception from MLForecast
|
|
476
|
+
if len(X_df.columns.difference([MLF_ITEMID, MLF_TIMESTAMP])) == 0:
|
|
477
|
+
X_df = None
|
|
477
478
|
with warning_filter():
|
|
478
479
|
raw_predictions = self._mlf.predict(
|
|
479
480
|
h=self.prediction_length,
|
|
480
481
|
new_df=new_df,
|
|
481
|
-
|
|
482
|
+
X_df=X_df,
|
|
482
483
|
)
|
|
483
484
|
predictions = raw_predictions.rename(columns={MLF_ITEMID: ITEMID, MLF_TIMESTAMP: TIMESTAMP})
|
|
484
485
|
|
|
@@ -495,10 +496,7 @@ class RecursiveTabularModel(AbstractMLForecastModel):
|
|
|
495
496
|
return TimeSeriesDataFrame(predictions).reindex(data.item_ids, level=ITEMID)
|
|
496
497
|
|
|
497
498
|
def _get_extra_tabular_init_kwargs(self) -> dict:
|
|
498
|
-
tabular_metric = self.eval_metric.equivalent_tabular_regression_metric
|
|
499
|
-
if tabular_metric is None:
|
|
500
|
-
tabular_metric = "mean_absolute_error"
|
|
501
499
|
return {
|
|
502
500
|
"problem_type": ag.constants.REGRESSION,
|
|
503
|
-
"eval_metric":
|
|
501
|
+
"eval_metric": self.eval_metric.equivalent_tabular_regression_metric or "mean_absolute_error",
|
|
504
502
|
}
|
|
@@ -9,12 +9,13 @@ statsmodels<0.15,>=0.13.0
|
|
|
9
9
|
gluonts<0.14,>=0.13.1
|
|
10
10
|
networkx<4,>=3.0
|
|
11
11
|
statsforecast<1.5,>=1.4.0
|
|
12
|
-
mlforecast<0.
|
|
12
|
+
mlforecast<0.10.1,>=0.10.0
|
|
13
|
+
utilsforecast<0.0.11,>=0.0.10
|
|
13
14
|
tqdm<5,>=4.38
|
|
14
15
|
ujson<6,>=5
|
|
15
|
-
autogluon.core[raytune]==0.8.
|
|
16
|
-
autogluon.common==0.8.
|
|
17
|
-
autogluon.tabular[catboost,lightgbm,xgboost]==0.8.
|
|
16
|
+
autogluon.core[raytune]==0.8.3b20231027
|
|
17
|
+
autogluon.common==0.8.3b20231027
|
|
18
|
+
autogluon.tabular[catboost,lightgbm,xgboost]==0.8.3b20231027
|
|
18
19
|
|
|
19
20
|
[all]
|
|
20
21
|
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|