autogluon.timeseries 0.8.3b20231025__py3-none-any.whl → 0.8.3b20231027__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.

@@ -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
@@ -45,12 +45,13 @@ Requires-Dist: statsmodels <0.15,>=0.13.0
45
45
  Requires-Dist: gluonts <0.14,>=0.13.1
46
46
  Requires-Dist: networkx <4,>=3.0
47
47
  Requires-Dist: statsforecast <1.5,>=1.4.0
48
- Requires-Dist: mlforecast <0.9.4,>=0.9.3
48
+ Requires-Dist: mlforecast <0.10.1,>=0.10.0
49
+ Requires-Dist: utilsforecast <0.0.11,>=0.0.10
49
50
  Requires-Dist: tqdm <5,>=4.38
50
51
  Requires-Dist: ujson <6,>=5
51
- Requires-Dist: autogluon.core[raytune] ==0.8.3b20231025
52
- Requires-Dist: autogluon.common ==0.8.3b20231025
53
- Requires-Dist: autogluon.tabular[catboost,lightgbm,xgboost] ==0.8.3b20231025
52
+ Requires-Dist: autogluon.core[raytune] ==0.8.3b20231027
53
+ Requires-Dist: autogluon.common ==0.8.3b20231027
54
+ Requires-Dist: autogluon.tabular[catboost,lightgbm,xgboost] ==0.8.3b20231027
54
55
  Provides-Extra: all
55
56
  Provides-Extra: tests
56
57
  Requires-Dist: pytest ; extra == 'tests'
@@ -1,17 +1,17 @@
1
- autogluon.timeseries-0.8.3b20231025-py3.8-nspkg.pth,sha256=cQGwpuGPqg1GXscIwt-7PmME1OnSpD-7ixkikJ31WAY,554
1
+ autogluon.timeseries-0.8.3b20231027-py3.8-nspkg.pth,sha256=cQGwpuGPqg1GXscIwt-7PmME1OnSpD-7ixkikJ31WAY,554
2
2
  autogluon/timeseries/__init__.py,sha256=oGfAdHmGz9zGFH53Q4zDL42CavzjqFaWTgkx_vg17QM,370
3
3
  autogluon/timeseries/evaluator.py,sha256=CPqmtcPGVpD1ORydjAl65XS2Oq1Ua8q0IT1zX1cXv2Y,2206
4
4
  autogluon/timeseries/learner.py,sha256=LSoKWgWhyiwt4l-3IUSLk4EI7f-xiEQxH6kOBJ8Snmc,9361
5
5
  autogluon/timeseries/predictor.py,sha256=RQ2qGmWvNhjRugfafvfRxOK6LKgALVMAjM2QvY0YwmE,55808
6
6
  autogluon/timeseries/splitter.py,sha256=il3Z-75dNS2VeuejtzSP_V-bJYOwLWKNrbIOrz1dHnE,11589
7
- autogluon/timeseries/version.py,sha256=sV8LFJ8JVp9Hl4KfYLJNFcct1pIuG1I8_vKVTOLnP3c,90
7
+ autogluon/timeseries/version.py,sha256=jbOZdK5SimX4-T8ajoRhDzQ2_mgCI5J7T7DtVbG7Obk,90
8
8
  autogluon/timeseries/configs/__init__.py,sha256=BTtHIPCYeGjqgOcvqb8qPD4VNX-ICKOg6wnkew1cPOE,98
9
9
  autogluon/timeseries/configs/presets_configs.py,sha256=mX0V5zajWWArVforLvbyr6W-JMsQBp2AkBqlWVP2Zuw,640
10
10
  autogluon/timeseries/dataset/__init__.py,sha256=UvnhAN5tjgxXTHoZMQDy64YMDj4Xxa68yY7NP4vAw0o,81
11
11
  autogluon/timeseries/dataset/ts_dataframe.py,sha256=bobu5rOplC1z0z8IU0RjPOloLGN9kbQx6Ncq5G4bEBk,41063
12
12
  autogluon/timeseries/metrics/__init__.py,sha256=a1yWUaYNnCboPDMtshw4l7LCDKw9OaloY6mZR_Drppo,1670
13
13
  autogluon/timeseries/metrics/abstract.py,sha256=BLH6VRcgsSHwSLiB1fAPzh_Q_N_3a19wob78w29JPcE,8055
14
- autogluon/timeseries/metrics/point.py,sha256=W-7mLM6xmHcJwvpSJvVmw-Hzc4b7TC_BSFArDU-25-E,5783
14
+ autogluon/timeseries/metrics/point.py,sha256=xLserP_Zy1g_3vg8Rbm8PhDfF-wPS-C3fN67ka9-Zls,5793
15
15
  autogluon/timeseries/metrics/quantile.py,sha256=yfffrGJdmMFffeAjBng52OatFbYm5dq0CA89ZWIT8iA,847
16
16
  autogluon/timeseries/metrics/utils.py,sha256=eJ63TCR-UwbeJ1c2Qm7B2q-8B3sFthPgiooEccrf2Kc,912
17
17
  autogluon/timeseries/models/__init__.py,sha256=qjZKN0__rewaBgshr66lexmNskNQ0mXilgz8xF2c-pE,864
@@ -20,7 +20,7 @@ autogluon/timeseries/models/abstract/__init__.py,sha256=wvDsQAZIV0N3AwBeMaGItoQ8
20
20
  autogluon/timeseries/models/abstract/abstract_timeseries_model.py,sha256=hwxx1tW3Zuc0shpDMMH5dBwKyU8cyfqF8eg7w6ffdjo,19701
21
21
  autogluon/timeseries/models/abstract/model_trial.py,sha256=_5Nrk4CrG3u35tTd3elekfdnQI2Pn3P9AGS5CE6nuyg,3749
22
22
  autogluon/timeseries/models/autogluon_tabular/__init__.py,sha256=r9i6jWcyeLHYClkcMSKRVsfrkBUMxpDrTATNTBc_qgQ,136
23
- autogluon/timeseries/models/autogluon_tabular/mlforecast.py,sha256=dgs9qZ8mAfUSii025IiAYRuRgcmVyvwOg4e7xlmBR9A,23304
23
+ autogluon/timeseries/models/autogluon_tabular/mlforecast.py,sha256=sWYkCjTapfCAvM75ui4mFxh-P6-G1ewmHLX6JKEZEIk,23591
24
24
  autogluon/timeseries/models/autogluon_tabular/utils.py,sha256=4-gTrBtizxeMVQlsuscugPqw9unaXWXhS1TVVssfzYY,2125
25
25
  autogluon/timeseries/models/ensemble/__init__.py,sha256=kFr11Gmt7lQJu9Rr8HuIPphQN5l1TsoorfbJm_O3a_s,128
26
26
  autogluon/timeseries/models/ensemble/abstract_timeseries_ensemble.py,sha256=b6o_kJsyk5_uCDcgSKMpqugViMJ0t3AhIYdysG3U-Uc,3393
@@ -48,11 +48,11 @@ autogluon/timeseries/utils/datetime/base.py,sha256=MsqIHY14m3QMjSwwtE7Uo1oNwepWU
48
48
  autogluon/timeseries/utils/datetime/lags.py,sha256=kcU4liKbHj7KP2ajNU-KLZ8OYSU35EgT4kJjZNSw0Zg,5875
49
49
  autogluon/timeseries/utils/datetime/seasonality.py,sha256=kgK_ukw2wCviEB7CZXRVC5HZpBJZu9IsRrvCJ9E_rOE,755
50
50
  autogluon/timeseries/utils/datetime/time_features.py,sha256=pROkYyxETQ8rHKfPGhf2paB73C7rWJ2Ui0cCswLqbBg,2562
51
- autogluon.timeseries-0.8.3b20231025.dist-info/LICENSE,sha256=CeipvOyAZxBGUsFoaFqwkx54aPnIKEtm9a5u2uXxEws,10142
52
- autogluon.timeseries-0.8.3b20231025.dist-info/METADATA,sha256=4DW3fOHGzPxH0Mr9iOkC4eQChGY2Rlg8r99naVnwYWg,13246
53
- autogluon.timeseries-0.8.3b20231025.dist-info/NOTICE,sha256=7nPQuj8Kp-uXsU0S5so3-2dNU5EctS5hDXvvzzehd7E,114
54
- autogluon.timeseries-0.8.3b20231025.dist-info/WHEEL,sha256=yQN5g4mg4AybRjkgi-9yy4iQEFibGQmlz78Pik5Or-A,92
55
- autogluon.timeseries-0.8.3b20231025.dist-info/namespace_packages.txt,sha256=giERA4R78OkJf2ijn5slgjURlhRPzfLr7waIcGkzYAo,10
56
- autogluon.timeseries-0.8.3b20231025.dist-info/top_level.txt,sha256=giERA4R78OkJf2ijn5slgjURlhRPzfLr7waIcGkzYAo,10
57
- autogluon.timeseries-0.8.3b20231025.dist-info/zip-safe,sha256=AbpHGcgLb-kRsJGnwFEktk7uzpZOCcBY74-YBdrKVGs,1
58
- autogluon.timeseries-0.8.3b20231025.dist-info/RECORD,,
51
+ autogluon.timeseries-0.8.3b20231027.dist-info/LICENSE,sha256=CeipvOyAZxBGUsFoaFqwkx54aPnIKEtm9a5u2uXxEws,10142
52
+ autogluon.timeseries-0.8.3b20231027.dist-info/METADATA,sha256=CTkjrgdgUUPxvJu93h2_Bj-PGBYyzr9cCFGTmqRMzAM,13294
53
+ autogluon.timeseries-0.8.3b20231027.dist-info/NOTICE,sha256=7nPQuj8Kp-uXsU0S5so3-2dNU5EctS5hDXvvzzehd7E,114
54
+ autogluon.timeseries-0.8.3b20231027.dist-info/WHEEL,sha256=yQN5g4mg4AybRjkgi-9yy4iQEFibGQmlz78Pik5Or-A,92
55
+ autogluon.timeseries-0.8.3b20231027.dist-info/namespace_packages.txt,sha256=giERA4R78OkJf2ijn5slgjURlhRPzfLr7waIcGkzYAo,10
56
+ autogluon.timeseries-0.8.3b20231027.dist-info/top_level.txt,sha256=giERA4R78OkJf2ijn5slgjURlhRPzfLr7waIcGkzYAo,10
57
+ autogluon.timeseries-0.8.3b20231027.dist-info/zip-safe,sha256=AbpHGcgLb-kRsJGnwFEktk7uzpZOCcBY74-YBdrKVGs,1
58
+ autogluon.timeseries-0.8.3b20231027.dist-info/RECORD,,