autogluon.timeseries 1.1.1b20240507__tar.gz → 1.1.1b20240508__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-1.1.1b20240507 → autogluon.timeseries-1.1.1b20240508}/PKG-INFO +1 -1
- {autogluon.timeseries-1.1.1b20240507 → autogluon.timeseries-1.1.1b20240508}/src/autogluon/timeseries/models/autogluon_tabular/mlforecast.py +28 -4
- {autogluon.timeseries-1.1.1b20240507 → autogluon.timeseries-1.1.1b20240508}/src/autogluon/timeseries/version.py +1 -1
- {autogluon.timeseries-1.1.1b20240507 → autogluon.timeseries-1.1.1b20240508}/src/autogluon.timeseries.egg-info/PKG-INFO +1 -1
- {autogluon.timeseries-1.1.1b20240507 → autogluon.timeseries-1.1.1b20240508}/src/autogluon.timeseries.egg-info/requires.txt +3 -3
- {autogluon.timeseries-1.1.1b20240507 → autogluon.timeseries-1.1.1b20240508}/setup.cfg +0 -0
- {autogluon.timeseries-1.1.1b20240507 → autogluon.timeseries-1.1.1b20240508}/setup.py +0 -0
- {autogluon.timeseries-1.1.1b20240507 → autogluon.timeseries-1.1.1b20240508}/src/autogluon/timeseries/__init__.py +0 -0
- {autogluon.timeseries-1.1.1b20240507 → autogluon.timeseries-1.1.1b20240508}/src/autogluon/timeseries/configs/__init__.py +0 -0
- {autogluon.timeseries-1.1.1b20240507 → autogluon.timeseries-1.1.1b20240508}/src/autogluon/timeseries/configs/presets_configs.py +0 -0
- {autogluon.timeseries-1.1.1b20240507 → autogluon.timeseries-1.1.1b20240508}/src/autogluon/timeseries/dataset/__init__.py +0 -0
- {autogluon.timeseries-1.1.1b20240507 → autogluon.timeseries-1.1.1b20240508}/src/autogluon/timeseries/dataset/ts_dataframe.py +0 -0
- {autogluon.timeseries-1.1.1b20240507 → autogluon.timeseries-1.1.1b20240508}/src/autogluon/timeseries/evaluator.py +0 -0
- {autogluon.timeseries-1.1.1b20240507 → autogluon.timeseries-1.1.1b20240508}/src/autogluon/timeseries/learner.py +0 -0
- {autogluon.timeseries-1.1.1b20240507 → autogluon.timeseries-1.1.1b20240508}/src/autogluon/timeseries/metrics/__init__.py +0 -0
- {autogluon.timeseries-1.1.1b20240507 → autogluon.timeseries-1.1.1b20240508}/src/autogluon/timeseries/metrics/abstract.py +0 -0
- {autogluon.timeseries-1.1.1b20240507 → autogluon.timeseries-1.1.1b20240508}/src/autogluon/timeseries/metrics/point.py +0 -0
- {autogluon.timeseries-1.1.1b20240507 → autogluon.timeseries-1.1.1b20240508}/src/autogluon/timeseries/metrics/quantile.py +0 -0
- {autogluon.timeseries-1.1.1b20240507 → autogluon.timeseries-1.1.1b20240508}/src/autogluon/timeseries/metrics/utils.py +0 -0
- {autogluon.timeseries-1.1.1b20240507 → autogluon.timeseries-1.1.1b20240508}/src/autogluon/timeseries/models/__init__.py +0 -0
- {autogluon.timeseries-1.1.1b20240507 → autogluon.timeseries-1.1.1b20240508}/src/autogluon/timeseries/models/abstract/__init__.py +0 -0
- {autogluon.timeseries-1.1.1b20240507 → autogluon.timeseries-1.1.1b20240508}/src/autogluon/timeseries/models/abstract/abstract_timeseries_model.py +0 -0
- {autogluon.timeseries-1.1.1b20240507 → autogluon.timeseries-1.1.1b20240508}/src/autogluon/timeseries/models/abstract/model_trial.py +0 -0
- {autogluon.timeseries-1.1.1b20240507 → autogluon.timeseries-1.1.1b20240508}/src/autogluon/timeseries/models/autogluon_tabular/__init__.py +0 -0
- {autogluon.timeseries-1.1.1b20240507 → autogluon.timeseries-1.1.1b20240508}/src/autogluon/timeseries/models/autogluon_tabular/utils.py +0 -0
- {autogluon.timeseries-1.1.1b20240507 → autogluon.timeseries-1.1.1b20240508}/src/autogluon/timeseries/models/chronos/__init__.py +0 -0
- {autogluon.timeseries-1.1.1b20240507 → autogluon.timeseries-1.1.1b20240508}/src/autogluon/timeseries/models/chronos/model.py +0 -0
- {autogluon.timeseries-1.1.1b20240507 → autogluon.timeseries-1.1.1b20240508}/src/autogluon/timeseries/models/chronos/pipeline.py +0 -0
- {autogluon.timeseries-1.1.1b20240507 → autogluon.timeseries-1.1.1b20240508}/src/autogluon/timeseries/models/chronos/utils.py +0 -0
- {autogluon.timeseries-1.1.1b20240507 → autogluon.timeseries-1.1.1b20240508}/src/autogluon/timeseries/models/ensemble/__init__.py +0 -0
- {autogluon.timeseries-1.1.1b20240507 → autogluon.timeseries-1.1.1b20240508}/src/autogluon/timeseries/models/ensemble/abstract_timeseries_ensemble.py +0 -0
- {autogluon.timeseries-1.1.1b20240507 → autogluon.timeseries-1.1.1b20240508}/src/autogluon/timeseries/models/ensemble/greedy_ensemble.py +0 -0
- {autogluon.timeseries-1.1.1b20240507 → autogluon.timeseries-1.1.1b20240508}/src/autogluon/timeseries/models/gluonts/__init__.py +0 -0
- {autogluon.timeseries-1.1.1b20240507 → autogluon.timeseries-1.1.1b20240508}/src/autogluon/timeseries/models/gluonts/abstract_gluonts.py +0 -0
- {autogluon.timeseries-1.1.1b20240507 → autogluon.timeseries-1.1.1b20240508}/src/autogluon/timeseries/models/gluonts/torch/__init__.py +0 -0
- {autogluon.timeseries-1.1.1b20240507 → autogluon.timeseries-1.1.1b20240508}/src/autogluon/timeseries/models/gluonts/torch/models.py +0 -0
- {autogluon.timeseries-1.1.1b20240507 → autogluon.timeseries-1.1.1b20240508}/src/autogluon/timeseries/models/local/__init__.py +0 -0
- {autogluon.timeseries-1.1.1b20240507 → autogluon.timeseries-1.1.1b20240508}/src/autogluon/timeseries/models/local/abstract_local_model.py +0 -0
- {autogluon.timeseries-1.1.1b20240507 → autogluon.timeseries-1.1.1b20240508}/src/autogluon/timeseries/models/local/naive.py +0 -0
- {autogluon.timeseries-1.1.1b20240507 → autogluon.timeseries-1.1.1b20240508}/src/autogluon/timeseries/models/local/npts.py +0 -0
- {autogluon.timeseries-1.1.1b20240507 → autogluon.timeseries-1.1.1b20240508}/src/autogluon/timeseries/models/local/statsforecast.py +0 -0
- {autogluon.timeseries-1.1.1b20240507 → autogluon.timeseries-1.1.1b20240508}/src/autogluon/timeseries/models/multi_window/__init__.py +0 -0
- {autogluon.timeseries-1.1.1b20240507 → autogluon.timeseries-1.1.1b20240508}/src/autogluon/timeseries/models/multi_window/multi_window_model.py +0 -0
- {autogluon.timeseries-1.1.1b20240507 → autogluon.timeseries-1.1.1b20240508}/src/autogluon/timeseries/models/presets.py +0 -0
- {autogluon.timeseries-1.1.1b20240507 → autogluon.timeseries-1.1.1b20240508}/src/autogluon/timeseries/predictor.py +0 -0
- {autogluon.timeseries-1.1.1b20240507 → autogluon.timeseries-1.1.1b20240508}/src/autogluon/timeseries/splitter.py +0 -0
- {autogluon.timeseries-1.1.1b20240507 → autogluon.timeseries-1.1.1b20240508}/src/autogluon/timeseries/trainer/__init__.py +0 -0
- {autogluon.timeseries-1.1.1b20240507 → autogluon.timeseries-1.1.1b20240508}/src/autogluon/timeseries/trainer/abstract_trainer.py +0 -0
- {autogluon.timeseries-1.1.1b20240507 → autogluon.timeseries-1.1.1b20240508}/src/autogluon/timeseries/trainer/auto_trainer.py +0 -0
- {autogluon.timeseries-1.1.1b20240507 → autogluon.timeseries-1.1.1b20240508}/src/autogluon/timeseries/utils/__init__.py +0 -0
- {autogluon.timeseries-1.1.1b20240507 → autogluon.timeseries-1.1.1b20240508}/src/autogluon/timeseries/utils/datetime/__init__.py +0 -0
- {autogluon.timeseries-1.1.1b20240507 → autogluon.timeseries-1.1.1b20240508}/src/autogluon/timeseries/utils/datetime/base.py +0 -0
- {autogluon.timeseries-1.1.1b20240507 → autogluon.timeseries-1.1.1b20240508}/src/autogluon/timeseries/utils/datetime/lags.py +0 -0
- {autogluon.timeseries-1.1.1b20240507 → autogluon.timeseries-1.1.1b20240508}/src/autogluon/timeseries/utils/datetime/seasonality.py +0 -0
- {autogluon.timeseries-1.1.1b20240507 → autogluon.timeseries-1.1.1b20240508}/src/autogluon/timeseries/utils/datetime/time_features.py +0 -0
- {autogluon.timeseries-1.1.1b20240507 → autogluon.timeseries-1.1.1b20240508}/src/autogluon/timeseries/utils/features.py +0 -0
- {autogluon.timeseries-1.1.1b20240507 → autogluon.timeseries-1.1.1b20240508}/src/autogluon/timeseries/utils/forecast.py +0 -0
- {autogluon.timeseries-1.1.1b20240507 → autogluon.timeseries-1.1.1b20240508}/src/autogluon/timeseries/utils/warning_filters.py +0 -0
- {autogluon.timeseries-1.1.1b20240507 → autogluon.timeseries-1.1.1b20240508}/src/autogluon.timeseries.egg-info/SOURCES.txt +0 -0
- {autogluon.timeseries-1.1.1b20240507 → autogluon.timeseries-1.1.1b20240508}/src/autogluon.timeseries.egg-info/dependency_links.txt +0 -0
- {autogluon.timeseries-1.1.1b20240507 → autogluon.timeseries-1.1.1b20240508}/src/autogluon.timeseries.egg-info/namespace_packages.txt +0 -0
- {autogluon.timeseries-1.1.1b20240507 → autogluon.timeseries-1.1.1b20240508}/src/autogluon.timeseries.egg-info/top_level.txt +0 -0
- {autogluon.timeseries-1.1.1b20240507 → autogluon.timeseries-1.1.1b20240508}/src/autogluon.timeseries.egg-info/zip-safe +0 -0
|
@@ -86,6 +86,28 @@ class AbstractMLForecastModel(AbstractTimeSeriesModel):
|
|
|
86
86
|
self._residuals_std_per_item: Optional[pd.Series] = None
|
|
87
87
|
self._avg_residuals_std: Optional[float] = None
|
|
88
88
|
self._train_target_median: Optional[float] = None
|
|
89
|
+
self._non_boolean_real_covariates: List[str] = []
|
|
90
|
+
|
|
91
|
+
@property
|
|
92
|
+
def tabular_predictor_path(self) -> str:
|
|
93
|
+
return os.path.join(self.path, "tabular_predictor")
|
|
94
|
+
|
|
95
|
+
def save(self, path: str = None, verbose: bool = True) -> str:
|
|
96
|
+
assert "mean" in self._mlf.models_, "TabularPredictor must be trained before saving"
|
|
97
|
+
tabular_predictor = self._mlf.models_["mean"].predictor
|
|
98
|
+
self._mlf.models_["mean"].predictor = None
|
|
99
|
+
save_path = super().save(path=path, verbose=verbose)
|
|
100
|
+
self._mlf.models_["mean"].predictor = tabular_predictor
|
|
101
|
+
return save_path
|
|
102
|
+
|
|
103
|
+
@classmethod
|
|
104
|
+
def load(
|
|
105
|
+
cls, path: str, reset_paths: bool = True, load_oof: bool = False, verbose: bool = True
|
|
106
|
+
) -> "AbstractTimeSeriesModel":
|
|
107
|
+
model = super().load(path=path, reset_paths=reset_paths, load_oof=load_oof, verbose=verbose)
|
|
108
|
+
assert "mean" in model._mlf.models_, "Loaded model doesn't have a trained TabularPredictor"
|
|
109
|
+
model._mlf.models_["mean"].predictor = TabularPredictor.load(model.tabular_predictor_path)
|
|
110
|
+
return model
|
|
89
111
|
|
|
90
112
|
def preprocess(self, data: TimeSeriesDataFrame, is_train: bool = False, **kwargs) -> Any:
|
|
91
113
|
if is_train:
|
|
@@ -252,10 +274,9 @@ class AbstractMLForecastModel(AbstractTimeSeriesModel):
|
|
|
252
274
|
if static_features is not None:
|
|
253
275
|
df = pd.merge(df, static_features, how="left", on=ITEMID, suffixes=(None, "_static_feat"))
|
|
254
276
|
|
|
255
|
-
for col in self.
|
|
277
|
+
for col in self._non_boolean_real_covariates:
|
|
256
278
|
# Normalize non-boolean features using mean_abs scaling
|
|
257
|
-
|
|
258
|
-
df[f"__scaled_{col}"] = df[col] / df[col].abs().groupby(df[ITEMID]).mean().reindex(df[ITEMID]).values
|
|
279
|
+
df[f"__scaled_{col}"] = df[col] / df[col].abs().groupby(df[ITEMID]).mean().reindex(df[ITEMID]).values
|
|
259
280
|
|
|
260
281
|
# Convert float64 to float32 to reduce memory usage
|
|
261
282
|
float64_cols = list(df.select_dtypes(include="float64"))
|
|
@@ -277,6 +298,9 @@ class AbstractMLForecastModel(AbstractTimeSeriesModel):
|
|
|
277
298
|
self._check_fit_params()
|
|
278
299
|
fit_start_time = time.time()
|
|
279
300
|
self._train_target_median = train_data[self.target].median()
|
|
301
|
+
for col in self.metadata.known_covariates_real:
|
|
302
|
+
if not train_data[col].isin([0, 1]).all():
|
|
303
|
+
self._non_boolean_real_covariates.append(col)
|
|
280
304
|
# TabularEstimator is passed to MLForecast later to include tuning_data
|
|
281
305
|
model_params = self._get_model_params()
|
|
282
306
|
|
|
@@ -292,7 +316,7 @@ class AbstractMLForecastModel(AbstractTimeSeriesModel):
|
|
|
292
316
|
|
|
293
317
|
estimator = TabularEstimator(
|
|
294
318
|
predictor_init_kwargs={
|
|
295
|
-
"path":
|
|
319
|
+
"path": self.tabular_predictor_path,
|
|
296
320
|
"verbosity": verbosity - 2,
|
|
297
321
|
"label": MLF_TARGET,
|
|
298
322
|
**self._get_extra_tabular_init_kwargs(),
|
|
@@ -15,9 +15,9 @@ utilsforecast<0.0.11,>=0.0.10
|
|
|
15
15
|
tqdm<5,>=4.38
|
|
16
16
|
orjson~=3.9
|
|
17
17
|
tensorboard<3,>=2.9
|
|
18
|
-
autogluon.core[raytune]==1.1.
|
|
19
|
-
autogluon.common==1.1.
|
|
20
|
-
autogluon.tabular[catboost,lightgbm,xgboost]==1.1.
|
|
18
|
+
autogluon.core[raytune]==1.1.1b20240508
|
|
19
|
+
autogluon.common==1.1.1b20240508
|
|
20
|
+
autogluon.tabular[catboost,lightgbm,xgboost]==1.1.1b20240508
|
|
21
21
|
|
|
22
22
|
[all]
|
|
23
23
|
optimum[onnxruntime]<1.19,>=1.17
|
|
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
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|