autogluon.timeseries 1.1.0b20240409__tar.gz → 1.1.0b20240410__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 (63) hide show
  1. {autogluon.timeseries-1.1.0b20240409 → autogluon.timeseries-1.1.0b20240410}/PKG-INFO +3 -3
  2. {autogluon.timeseries-1.1.0b20240409 → autogluon.timeseries-1.1.0b20240410}/src/autogluon/timeseries/models/autogluon_tabular/mlforecast.py +25 -1
  3. {autogluon.timeseries-1.1.0b20240409 → autogluon.timeseries-1.1.0b20240410}/src/autogluon/timeseries/models/local/abstract_local_model.py +1 -2
  4. {autogluon.timeseries-1.1.0b20240409 → autogluon.timeseries-1.1.0b20240410}/src/autogluon/timeseries/version.py +1 -1
  5. {autogluon.timeseries-1.1.0b20240409 → autogluon.timeseries-1.1.0b20240410}/src/autogluon.timeseries.egg-info/PKG-INFO +3 -3
  6. {autogluon.timeseries-1.1.0b20240409 → autogluon.timeseries-1.1.0b20240410}/src/autogluon.timeseries.egg-info/requires.txt +3 -3
  7. {autogluon.timeseries-1.1.0b20240409 → autogluon.timeseries-1.1.0b20240410}/setup.cfg +0 -0
  8. {autogluon.timeseries-1.1.0b20240409 → autogluon.timeseries-1.1.0b20240410}/setup.py +0 -0
  9. {autogluon.timeseries-1.1.0b20240409 → autogluon.timeseries-1.1.0b20240410}/src/autogluon/timeseries/__init__.py +0 -0
  10. {autogluon.timeseries-1.1.0b20240409 → autogluon.timeseries-1.1.0b20240410}/src/autogluon/timeseries/configs/__init__.py +0 -0
  11. {autogluon.timeseries-1.1.0b20240409 → autogluon.timeseries-1.1.0b20240410}/src/autogluon/timeseries/configs/presets_configs.py +0 -0
  12. {autogluon.timeseries-1.1.0b20240409 → autogluon.timeseries-1.1.0b20240410}/src/autogluon/timeseries/dataset/__init__.py +0 -0
  13. {autogluon.timeseries-1.1.0b20240409 → autogluon.timeseries-1.1.0b20240410}/src/autogluon/timeseries/dataset/ts_dataframe.py +0 -0
  14. {autogluon.timeseries-1.1.0b20240409 → autogluon.timeseries-1.1.0b20240410}/src/autogluon/timeseries/evaluator.py +0 -0
  15. {autogluon.timeseries-1.1.0b20240409 → autogluon.timeseries-1.1.0b20240410}/src/autogluon/timeseries/learner.py +0 -0
  16. {autogluon.timeseries-1.1.0b20240409 → autogluon.timeseries-1.1.0b20240410}/src/autogluon/timeseries/metrics/__init__.py +0 -0
  17. {autogluon.timeseries-1.1.0b20240409 → autogluon.timeseries-1.1.0b20240410}/src/autogluon/timeseries/metrics/abstract.py +0 -0
  18. {autogluon.timeseries-1.1.0b20240409 → autogluon.timeseries-1.1.0b20240410}/src/autogluon/timeseries/metrics/point.py +0 -0
  19. {autogluon.timeseries-1.1.0b20240409 → autogluon.timeseries-1.1.0b20240410}/src/autogluon/timeseries/metrics/quantile.py +0 -0
  20. {autogluon.timeseries-1.1.0b20240409 → autogluon.timeseries-1.1.0b20240410}/src/autogluon/timeseries/metrics/utils.py +0 -0
  21. {autogluon.timeseries-1.1.0b20240409 → autogluon.timeseries-1.1.0b20240410}/src/autogluon/timeseries/models/__init__.py +0 -0
  22. {autogluon.timeseries-1.1.0b20240409 → autogluon.timeseries-1.1.0b20240410}/src/autogluon/timeseries/models/abstract/__init__.py +0 -0
  23. {autogluon.timeseries-1.1.0b20240409 → autogluon.timeseries-1.1.0b20240410}/src/autogluon/timeseries/models/abstract/abstract_timeseries_model.py +0 -0
  24. {autogluon.timeseries-1.1.0b20240409 → autogluon.timeseries-1.1.0b20240410}/src/autogluon/timeseries/models/abstract/model_trial.py +0 -0
  25. {autogluon.timeseries-1.1.0b20240409 → autogluon.timeseries-1.1.0b20240410}/src/autogluon/timeseries/models/autogluon_tabular/__init__.py +0 -0
  26. {autogluon.timeseries-1.1.0b20240409 → autogluon.timeseries-1.1.0b20240410}/src/autogluon/timeseries/models/autogluon_tabular/utils.py +0 -0
  27. {autogluon.timeseries-1.1.0b20240409 → autogluon.timeseries-1.1.0b20240410}/src/autogluon/timeseries/models/chronos/__init__.py +0 -0
  28. {autogluon.timeseries-1.1.0b20240409 → autogluon.timeseries-1.1.0b20240410}/src/autogluon/timeseries/models/chronos/model.py +0 -0
  29. {autogluon.timeseries-1.1.0b20240409 → autogluon.timeseries-1.1.0b20240410}/src/autogluon/timeseries/models/chronos/pipeline.py +0 -0
  30. {autogluon.timeseries-1.1.0b20240409 → autogluon.timeseries-1.1.0b20240410}/src/autogluon/timeseries/models/chronos/utils.py +0 -0
  31. {autogluon.timeseries-1.1.0b20240409 → autogluon.timeseries-1.1.0b20240410}/src/autogluon/timeseries/models/ensemble/__init__.py +0 -0
  32. {autogluon.timeseries-1.1.0b20240409 → autogluon.timeseries-1.1.0b20240410}/src/autogluon/timeseries/models/ensemble/abstract_timeseries_ensemble.py +0 -0
  33. {autogluon.timeseries-1.1.0b20240409 → autogluon.timeseries-1.1.0b20240410}/src/autogluon/timeseries/models/ensemble/greedy_ensemble.py +0 -0
  34. {autogluon.timeseries-1.1.0b20240409 → autogluon.timeseries-1.1.0b20240410}/src/autogluon/timeseries/models/gluonts/__init__.py +0 -0
  35. {autogluon.timeseries-1.1.0b20240409 → autogluon.timeseries-1.1.0b20240410}/src/autogluon/timeseries/models/gluonts/abstract_gluonts.py +0 -0
  36. {autogluon.timeseries-1.1.0b20240409 → autogluon.timeseries-1.1.0b20240410}/src/autogluon/timeseries/models/gluonts/torch/__init__.py +0 -0
  37. {autogluon.timeseries-1.1.0b20240409 → autogluon.timeseries-1.1.0b20240410}/src/autogluon/timeseries/models/gluonts/torch/models.py +0 -0
  38. {autogluon.timeseries-1.1.0b20240409 → autogluon.timeseries-1.1.0b20240410}/src/autogluon/timeseries/models/local/__init__.py +0 -0
  39. {autogluon.timeseries-1.1.0b20240409 → autogluon.timeseries-1.1.0b20240410}/src/autogluon/timeseries/models/local/naive.py +0 -0
  40. {autogluon.timeseries-1.1.0b20240409 → autogluon.timeseries-1.1.0b20240410}/src/autogluon/timeseries/models/local/npts.py +0 -0
  41. {autogluon.timeseries-1.1.0b20240409 → autogluon.timeseries-1.1.0b20240410}/src/autogluon/timeseries/models/local/statsforecast.py +0 -0
  42. {autogluon.timeseries-1.1.0b20240409 → autogluon.timeseries-1.1.0b20240410}/src/autogluon/timeseries/models/multi_window/__init__.py +0 -0
  43. {autogluon.timeseries-1.1.0b20240409 → autogluon.timeseries-1.1.0b20240410}/src/autogluon/timeseries/models/multi_window/multi_window_model.py +0 -0
  44. {autogluon.timeseries-1.1.0b20240409 → autogluon.timeseries-1.1.0b20240410}/src/autogluon/timeseries/models/presets.py +0 -0
  45. {autogluon.timeseries-1.1.0b20240409 → autogluon.timeseries-1.1.0b20240410}/src/autogluon/timeseries/predictor.py +0 -0
  46. {autogluon.timeseries-1.1.0b20240409 → autogluon.timeseries-1.1.0b20240410}/src/autogluon/timeseries/splitter.py +0 -0
  47. {autogluon.timeseries-1.1.0b20240409 → autogluon.timeseries-1.1.0b20240410}/src/autogluon/timeseries/trainer/__init__.py +0 -0
  48. {autogluon.timeseries-1.1.0b20240409 → autogluon.timeseries-1.1.0b20240410}/src/autogluon/timeseries/trainer/abstract_trainer.py +0 -0
  49. {autogluon.timeseries-1.1.0b20240409 → autogluon.timeseries-1.1.0b20240410}/src/autogluon/timeseries/trainer/auto_trainer.py +0 -0
  50. {autogluon.timeseries-1.1.0b20240409 → autogluon.timeseries-1.1.0b20240410}/src/autogluon/timeseries/utils/__init__.py +0 -0
  51. {autogluon.timeseries-1.1.0b20240409 → autogluon.timeseries-1.1.0b20240410}/src/autogluon/timeseries/utils/datetime/__init__.py +0 -0
  52. {autogluon.timeseries-1.1.0b20240409 → autogluon.timeseries-1.1.0b20240410}/src/autogluon/timeseries/utils/datetime/base.py +0 -0
  53. {autogluon.timeseries-1.1.0b20240409 → autogluon.timeseries-1.1.0b20240410}/src/autogluon/timeseries/utils/datetime/lags.py +0 -0
  54. {autogluon.timeseries-1.1.0b20240409 → autogluon.timeseries-1.1.0b20240410}/src/autogluon/timeseries/utils/datetime/seasonality.py +0 -0
  55. {autogluon.timeseries-1.1.0b20240409 → autogluon.timeseries-1.1.0b20240410}/src/autogluon/timeseries/utils/datetime/time_features.py +0 -0
  56. {autogluon.timeseries-1.1.0b20240409 → autogluon.timeseries-1.1.0b20240410}/src/autogluon/timeseries/utils/features.py +0 -0
  57. {autogluon.timeseries-1.1.0b20240409 → autogluon.timeseries-1.1.0b20240410}/src/autogluon/timeseries/utils/forecast.py +0 -0
  58. {autogluon.timeseries-1.1.0b20240409 → autogluon.timeseries-1.1.0b20240410}/src/autogluon/timeseries/utils/warning_filters.py +0 -0
  59. {autogluon.timeseries-1.1.0b20240409 → autogluon.timeseries-1.1.0b20240410}/src/autogluon.timeseries.egg-info/SOURCES.txt +0 -0
  60. {autogluon.timeseries-1.1.0b20240409 → autogluon.timeseries-1.1.0b20240410}/src/autogluon.timeseries.egg-info/dependency_links.txt +0 -0
  61. {autogluon.timeseries-1.1.0b20240409 → autogluon.timeseries-1.1.0b20240410}/src/autogluon.timeseries.egg-info/namespace_packages.txt +0 -0
  62. {autogluon.timeseries-1.1.0b20240409 → autogluon.timeseries-1.1.0b20240410}/src/autogluon.timeseries.egg-info/top_level.txt +0 -0
  63. {autogluon.timeseries-1.1.0b20240409 → autogluon.timeseries-1.1.0b20240410}/src/autogluon.timeseries.egg-info/zip-safe +0 -0
@@ -1,7 +1,7 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: autogluon.timeseries
3
- Version: 1.1.0b20240409
4
- Summary: AutoML for Image, Text, and Tabular Data
3
+ Version: 1.1.0b20240410
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
7
7
  License: Apache-2.0
@@ -14,7 +14,7 @@ Description:
14
14
  <div align="center">
15
15
  <img src="https://user-images.githubusercontent.com/16392542/77208906-224aa500-6aba-11ea-96bd-e81806074030.png" width="350">
16
16
 
17
- ## AutoML for Image, Text, Time Series, and Tabular Data
17
+ ## Fast and Accurate ML in 3 Lines of Code
18
18
 
19
19
  [![Latest Release](https://img.shields.io/github/v/release/autogluon/autogluon)](https://github.com/autogluon/autogluon/releases)
20
20
  [![Conda Forge](https://img.shields.io/conda/vn/conda-forge/autogluon.svg)](https://anaconda.org/conda-forge/autogluon)
@@ -174,6 +174,21 @@ class AbstractMLForecastModel(AbstractTimeSeriesModel):
174
174
  """
175
175
  return df
176
176
 
177
+ def _add_scale_as_static_feature(self, data: TimeSeriesDataFrame) -> TimeSeriesDataFrame:
178
+ """Add mean/std of the target column for each series as a static feature."""
179
+ data = data.copy(deep=False)
180
+ scale_features = (
181
+ data[self.target]
182
+ .groupby(ITEMID, sort=False)
183
+ .agg(["mean", "std"])
184
+ .rename(columns={"mean": "__target_mean", "std": "__target_scale"})
185
+ )
186
+ if data.static_features is None:
187
+ data.static_features = scale_features
188
+ else:
189
+ data.static_features = pd.concat([data.static_features, scale_features], axis=1)
190
+ return data
191
+
177
192
  @staticmethod
178
193
  def _shorten_all_series(mlforecast_df: pd.DataFrame, max_length: int):
179
194
  logger.debug(f"Shortening all series to at most {max_length}")
@@ -252,6 +267,11 @@ class AbstractMLForecastModel(AbstractTimeSeriesModel):
252
267
  if static_features is not None:
253
268
  df = pd.merge(df, static_features, how="left", on=ITEMID, suffixes=(None, "_static_feat"))
254
269
 
270
+ for col in self.metadata.known_covariates_real:
271
+ # Normalize non-boolean features using mean_abs scaling
272
+ if not df[col].isin([0, 1]).all():
273
+ df[f"__scaled_{col}"] = df[col] / df[col].abs().groupby(df[ITEMID]).mean().reindex(df[ITEMID]).values
274
+
255
275
  # We assume that df is sorted by 'unique_id' inside `TimeSeriesPredictor._check_and_prepare_data_frame`
256
276
  return df.rename(columns=column_name_mapping)
257
277
 
@@ -265,6 +285,8 @@ class AbstractMLForecastModel(AbstractTimeSeriesModel):
265
285
  ) -> None:
266
286
  from mlforecast import MLForecast
267
287
 
288
+ train_data = self._add_scale_as_static_feature(train_data)
289
+
268
290
  self._check_fit_params()
269
291
  fit_start_time = time.time()
270
292
  self._train_target_median = train_data[self.target].median()
@@ -463,6 +485,7 @@ class DirectTabularModel(AbstractMLForecastModel):
463
485
  known_covariates: Optional[TimeSeriesDataFrame] = None,
464
486
  **kwargs,
465
487
  ) -> TimeSeriesDataFrame:
488
+ data = self._add_scale_as_static_feature(data)
466
489
  original_item_id_order = data.item_ids
467
490
  data, known_covariates, forecast_for_short_series = self._remove_short_ts_and_generate_fallback_forecast(
468
491
  data=data, known_covariates=known_covariates
@@ -479,7 +502,7 @@ class DirectTabularModel(AbstractMLForecastModel):
479
502
  # MLForecast raises exception of target contains NaN. We use inf as placeholder, replace them by NaN afterwards
480
503
  data_future[self.target] = float("inf")
481
504
  data_extended = pd.concat([data, data_future])
482
- mlforecast_df = self._to_mlforecast_df(data_extended, data.static_features)
505
+ mlforecast_df = self._to_mlforecast_df(data_extended, data_extended.static_features)
483
506
  if self._max_ts_length is not None:
484
507
  # We appended `prediction_length` time steps to each series, so increase length
485
508
  mlforecast_df = self._shorten_all_series(mlforecast_df, self._max_ts_length + self.prediction_length)
@@ -594,6 +617,7 @@ class RecursiveTabularModel(AbstractMLForecastModel):
594
617
  known_covariates: Optional[TimeSeriesDataFrame] = None,
595
618
  **kwargs,
596
619
  ) -> TimeSeriesDataFrame:
620
+ data = self._add_scale_as_static_feature(data)
597
621
  original_item_id_order = data.item_ids
598
622
  data, known_covariates, forecast_for_short_series = self._remove_short_ts_and_generate_fallback_forecast(
599
623
  data=data, known_covariates=known_covariates
@@ -185,9 +185,9 @@ class AbstractLocalModel(AbstractTimeSeriesModel):
185
185
  if end_time is not None and time.time() >= end_time:
186
186
  raise TimeLimitExceeded
187
187
 
188
+ model_failed = False
188
189
  if time_series.isna().all():
189
190
  result = self._dummy_forecast.copy()
190
- model_failed = True
191
191
  else:
192
192
  try:
193
193
  result = self._predict_with_local_model(
@@ -196,7 +196,6 @@ class AbstractLocalModel(AbstractTimeSeriesModel):
196
196
  )
197
197
  if not np.isfinite(result.values).all():
198
198
  raise RuntimeError("Forecast contains NaN or Inf values.")
199
- model_failed = False
200
199
  except Exception:
201
200
  if self.use_fallback_model:
202
201
  result = seasonal_naive_forecast(
@@ -1,3 +1,3 @@
1
1
  """This is the autogluon version file."""
2
- __version__ = '1.1.0b20240409'
2
+ __version__ = '1.1.0b20240410'
3
3
  __lite__ = False
@@ -1,7 +1,7 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: autogluon.timeseries
3
- Version: 1.1.0b20240409
4
- Summary: AutoML for Image, Text, and Tabular Data
3
+ Version: 1.1.0b20240410
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
7
7
  License: Apache-2.0
@@ -14,7 +14,7 @@ Description:
14
14
  <div align="center">
15
15
  <img src="https://user-images.githubusercontent.com/16392542/77208906-224aa500-6aba-11ea-96bd-e81806074030.png" width="350">
16
16
 
17
- ## AutoML for Image, Text, Time Series, and Tabular Data
17
+ ## Fast and Accurate ML in 3 Lines of Code
18
18
 
19
19
  [![Latest Release](https://img.shields.io/github/v/release/autogluon/autogluon)](https://github.com/autogluon/autogluon/releases)
20
20
  [![Conda Forge](https://img.shields.io/conda/vn/conda-forge/autogluon.svg)](https://anaconda.org/conda-forge/autogluon)
@@ -16,9 +16,9 @@ utilsforecast<0.0.11,>=0.0.10
16
16
  tqdm<5,>=4.38
17
17
  orjson~=3.9
18
18
  tensorboard<3,>=2.9
19
- autogluon.core[raytune]==1.1.0b20240409
20
- autogluon.common==1.1.0b20240409
21
- autogluon.tabular[catboost,lightgbm,xgboost]==1.1.0b20240409
19
+ autogluon.core[raytune]==1.1.0b20240410
20
+ autogluon.common==1.1.0b20240410
21
+ autogluon.tabular[catboost,lightgbm,xgboost]==1.1.0b20240410
22
22
 
23
23
  [all]
24
24
  optimum[onnxruntime]<1.19,>=1.17