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.

Files changed (59) hide show
  1. {autogluon.timeseries-0.8.3b20231025 → autogluon.timeseries-0.8.3b20231027}/PKG-INFO +1 -1
  2. {autogluon.timeseries-0.8.3b20231025 → autogluon.timeseries-0.8.3b20231027}/setup.py +2 -1
  3. {autogluon.timeseries-0.8.3b20231025 → autogluon.timeseries-0.8.3b20231027}/src/autogluon/timeseries/metrics/point.py +4 -2
  4. {autogluon.timeseries-0.8.3b20231025 → autogluon.timeseries-0.8.3b20231027}/src/autogluon/timeseries/models/autogluon_tabular/mlforecast.py +14 -16
  5. {autogluon.timeseries-0.8.3b20231025 → autogluon.timeseries-0.8.3b20231027}/src/autogluon/timeseries/version.py +1 -1
  6. {autogluon.timeseries-0.8.3b20231025 → autogluon.timeseries-0.8.3b20231027}/src/autogluon.timeseries.egg-info/PKG-INFO +1 -1
  7. {autogluon.timeseries-0.8.3b20231025 → autogluon.timeseries-0.8.3b20231027}/src/autogluon.timeseries.egg-info/requires.txt +5 -4
  8. {autogluon.timeseries-0.8.3b20231025 → autogluon.timeseries-0.8.3b20231027}/setup.cfg +0 -0
  9. {autogluon.timeseries-0.8.3b20231025 → autogluon.timeseries-0.8.3b20231027}/src/autogluon/timeseries/__init__.py +0 -0
  10. {autogluon.timeseries-0.8.3b20231025 → autogluon.timeseries-0.8.3b20231027}/src/autogluon/timeseries/configs/__init__.py +0 -0
  11. {autogluon.timeseries-0.8.3b20231025 → autogluon.timeseries-0.8.3b20231027}/src/autogluon/timeseries/configs/presets_configs.py +0 -0
  12. {autogluon.timeseries-0.8.3b20231025 → autogluon.timeseries-0.8.3b20231027}/src/autogluon/timeseries/dataset/__init__.py +0 -0
  13. {autogluon.timeseries-0.8.3b20231025 → autogluon.timeseries-0.8.3b20231027}/src/autogluon/timeseries/dataset/ts_dataframe.py +0 -0
  14. {autogluon.timeseries-0.8.3b20231025 → autogluon.timeseries-0.8.3b20231027}/src/autogluon/timeseries/evaluator.py +0 -0
  15. {autogluon.timeseries-0.8.3b20231025 → autogluon.timeseries-0.8.3b20231027}/src/autogluon/timeseries/learner.py +0 -0
  16. {autogluon.timeseries-0.8.3b20231025 → autogluon.timeseries-0.8.3b20231027}/src/autogluon/timeseries/metrics/__init__.py +0 -0
  17. {autogluon.timeseries-0.8.3b20231025 → autogluon.timeseries-0.8.3b20231027}/src/autogluon/timeseries/metrics/abstract.py +0 -0
  18. {autogluon.timeseries-0.8.3b20231025 → autogluon.timeseries-0.8.3b20231027}/src/autogluon/timeseries/metrics/quantile.py +0 -0
  19. {autogluon.timeseries-0.8.3b20231025 → autogluon.timeseries-0.8.3b20231027}/src/autogluon/timeseries/metrics/utils.py +0 -0
  20. {autogluon.timeseries-0.8.3b20231025 → autogluon.timeseries-0.8.3b20231027}/src/autogluon/timeseries/models/__init__.py +0 -0
  21. {autogluon.timeseries-0.8.3b20231025 → autogluon.timeseries-0.8.3b20231027}/src/autogluon/timeseries/models/abstract/__init__.py +0 -0
  22. {autogluon.timeseries-0.8.3b20231025 → autogluon.timeseries-0.8.3b20231027}/src/autogluon/timeseries/models/abstract/abstract_timeseries_model.py +0 -0
  23. {autogluon.timeseries-0.8.3b20231025 → autogluon.timeseries-0.8.3b20231027}/src/autogluon/timeseries/models/abstract/model_trial.py +0 -0
  24. {autogluon.timeseries-0.8.3b20231025 → autogluon.timeseries-0.8.3b20231027}/src/autogluon/timeseries/models/autogluon_tabular/__init__.py +0 -0
  25. {autogluon.timeseries-0.8.3b20231025 → autogluon.timeseries-0.8.3b20231027}/src/autogluon/timeseries/models/autogluon_tabular/utils.py +0 -0
  26. {autogluon.timeseries-0.8.3b20231025 → autogluon.timeseries-0.8.3b20231027}/src/autogluon/timeseries/models/ensemble/__init__.py +0 -0
  27. {autogluon.timeseries-0.8.3b20231025 → autogluon.timeseries-0.8.3b20231027}/src/autogluon/timeseries/models/ensemble/abstract_timeseries_ensemble.py +0 -0
  28. {autogluon.timeseries-0.8.3b20231025 → autogluon.timeseries-0.8.3b20231027}/src/autogluon/timeseries/models/ensemble/greedy_ensemble.py +0 -0
  29. {autogluon.timeseries-0.8.3b20231025 → autogluon.timeseries-0.8.3b20231027}/src/autogluon/timeseries/models/gluonts/__init__.py +0 -0
  30. {autogluon.timeseries-0.8.3b20231025 → autogluon.timeseries-0.8.3b20231027}/src/autogluon/timeseries/models/gluonts/abstract_gluonts.py +0 -0
  31. {autogluon.timeseries-0.8.3b20231025 → autogluon.timeseries-0.8.3b20231027}/src/autogluon/timeseries/models/gluonts/torch/__init__.py +0 -0
  32. {autogluon.timeseries-0.8.3b20231025 → autogluon.timeseries-0.8.3b20231027}/src/autogluon/timeseries/models/gluonts/torch/models.py +0 -0
  33. {autogluon.timeseries-0.8.3b20231025 → autogluon.timeseries-0.8.3b20231027}/src/autogluon/timeseries/models/local/__init__.py +0 -0
  34. {autogluon.timeseries-0.8.3b20231025 → autogluon.timeseries-0.8.3b20231027}/src/autogluon/timeseries/models/local/abstract_local_model.py +0 -0
  35. {autogluon.timeseries-0.8.3b20231025 → autogluon.timeseries-0.8.3b20231027}/src/autogluon/timeseries/models/local/naive.py +0 -0
  36. {autogluon.timeseries-0.8.3b20231025 → autogluon.timeseries-0.8.3b20231027}/src/autogluon/timeseries/models/local/npts.py +0 -0
  37. {autogluon.timeseries-0.8.3b20231025 → autogluon.timeseries-0.8.3b20231027}/src/autogluon/timeseries/models/local/statsforecast.py +0 -0
  38. {autogluon.timeseries-0.8.3b20231025 → autogluon.timeseries-0.8.3b20231027}/src/autogluon/timeseries/models/multi_window/__init__.py +0 -0
  39. {autogluon.timeseries-0.8.3b20231025 → autogluon.timeseries-0.8.3b20231027}/src/autogluon/timeseries/models/multi_window/multi_window_model.py +0 -0
  40. {autogluon.timeseries-0.8.3b20231025 → autogluon.timeseries-0.8.3b20231027}/src/autogluon/timeseries/models/presets.py +0 -0
  41. {autogluon.timeseries-0.8.3b20231025 → autogluon.timeseries-0.8.3b20231027}/src/autogluon/timeseries/predictor.py +0 -0
  42. {autogluon.timeseries-0.8.3b20231025 → autogluon.timeseries-0.8.3b20231027}/src/autogluon/timeseries/splitter.py +0 -0
  43. {autogluon.timeseries-0.8.3b20231025 → autogluon.timeseries-0.8.3b20231027}/src/autogluon/timeseries/trainer/__init__.py +0 -0
  44. {autogluon.timeseries-0.8.3b20231025 → autogluon.timeseries-0.8.3b20231027}/src/autogluon/timeseries/trainer/abstract_trainer.py +0 -0
  45. {autogluon.timeseries-0.8.3b20231025 → autogluon.timeseries-0.8.3b20231027}/src/autogluon/timeseries/trainer/auto_trainer.py +0 -0
  46. {autogluon.timeseries-0.8.3b20231025 → autogluon.timeseries-0.8.3b20231027}/src/autogluon/timeseries/utils/__init__.py +0 -0
  47. {autogluon.timeseries-0.8.3b20231025 → autogluon.timeseries-0.8.3b20231027}/src/autogluon/timeseries/utils/datetime/__init__.py +0 -0
  48. {autogluon.timeseries-0.8.3b20231025 → autogluon.timeseries-0.8.3b20231027}/src/autogluon/timeseries/utils/datetime/base.py +0 -0
  49. {autogluon.timeseries-0.8.3b20231025 → autogluon.timeseries-0.8.3b20231027}/src/autogluon/timeseries/utils/datetime/lags.py +0 -0
  50. {autogluon.timeseries-0.8.3b20231025 → autogluon.timeseries-0.8.3b20231027}/src/autogluon/timeseries/utils/datetime/seasonality.py +0 -0
  51. {autogluon.timeseries-0.8.3b20231025 → autogluon.timeseries-0.8.3b20231027}/src/autogluon/timeseries/utils/datetime/time_features.py +0 -0
  52. {autogluon.timeseries-0.8.3b20231025 → autogluon.timeseries-0.8.3b20231027}/src/autogluon/timeseries/utils/features.py +0 -0
  53. {autogluon.timeseries-0.8.3b20231025 → autogluon.timeseries-0.8.3b20231027}/src/autogluon/timeseries/utils/forecast.py +0 -0
  54. {autogluon.timeseries-0.8.3b20231025 → autogluon.timeseries-0.8.3b20231027}/src/autogluon/timeseries/utils/warning_filters.py +0 -0
  55. {autogluon.timeseries-0.8.3b20231025 → autogluon.timeseries-0.8.3b20231027}/src/autogluon.timeseries.egg-info/SOURCES.txt +0 -0
  56. {autogluon.timeseries-0.8.3b20231025 → autogluon.timeseries-0.8.3b20231027}/src/autogluon.timeseries.egg-info/dependency_links.txt +0 -0
  57. {autogluon.timeseries-0.8.3b20231025 → autogluon.timeseries-0.8.3b20231027}/src/autogluon.timeseries.egg-info/namespace_packages.txt +0 -0
  58. {autogluon.timeseries-0.8.3b20231025 → autogluon.timeseries-0.8.3b20231027}/src/autogluon.timeseries.egg-info/top_level.txt +0 -0
  59. {autogluon.timeseries-0.8.3b20231025 → autogluon.timeseries-0.8.3b20231027}/src/autogluon.timeseries.egg-info/zip-safe +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: autogluon.timeseries
3
- Version: 0.8.3b20231025
3
+ Version: 0.8.3b20231027
4
4
  Summary: AutoML for Image, Text, and Tabular Data
5
5
  Home-page: https://github.com/autogluon/autogluon
6
6
  Author: AutoGluon Community
@@ -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.9.3,<0.9.4",
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
- df = self._mlf.preprocess(mlforecast_df, dropna=False)
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": tabular_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 not None:
474
- dynamic_dfs = [self._to_mlforecast_df(known_covariates, data.static_features, include_target=False)]
475
- else:
476
- dynamic_dfs = None
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
- dynamic_dfs=dynamic_dfs,
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": tabular_metric,
501
+ "eval_metric": self.eval_metric.equivalent_tabular_regression_metric or "mean_absolute_error",
504
502
  }
@@ -1,3 +1,3 @@
1
1
  """This is the autogluon version file."""
2
- __version__ = '0.8.3b20231025'
2
+ __version__ = '0.8.3b20231027'
3
3
  __lite__ = False
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: autogluon.timeseries
3
- Version: 0.8.3b20231025
3
+ Version: 0.8.3b20231027
4
4
  Summary: AutoML for Image, Text, and Tabular Data
5
5
  Home-page: https://github.com/autogluon/autogluon
6
6
  Author: AutoGluon Community
@@ -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.9.4,>=0.9.3
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.3b20231025
16
- autogluon.common==0.8.3b20231025
17
- autogluon.tabular[catboost,lightgbm,xgboost]==0.8.3b20231025
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