From 04658faa4c895199d793f2c40b643de712e4f769 Mon Sep 17 00:00:00 2001 From: ryuta-yoshimatsu Date: Tue, 4 Feb 2025 10:30:15 +0000 Subject: [PATCH] added-model-list --- README.md | 6 +- examples/daily/foundation_daily.py | 2 +- examples/daily/global_daily.py | 2 +- examples/daily/local_univariate_daily.py | 2 +- .../global_external_regressors_daily.py | 2 +- ...al_univariate_external_regressors_daily.py | 2 +- examples/hourly/foundation_hourly.py | 2 +- examples/hourly/global_hourly.py | 2 +- examples/hourly/local_univariate_hourly.py | 2 +- examples/monthly/foundation_monthly.py | 2 +- examples/monthly/global_monthly.py | 2 +- examples/monthly/local_univariate_monthly.py | 2 +- examples/weekly/foundation_weekly.py | 2 +- examples/weekly/global_weekly.py | 2 +- examples/weekly/local_univariate_weekly.py | 2 +- mmf_sa/models/README.md | 63 +++++++++++++++++++ 16 files changed, 80 insertions(+), 17 deletions(-) create mode 100644 mmf_sa/models/README.md diff --git a/README.md b/README.md index 25757e9..ac46abb 100644 --- a/README.md +++ b/README.md @@ -58,7 +58,7 @@ active_models = [ ] ``` -A comprehensive list of local models currently supported by MMF is available in the [mmf_sa/models/models_conf.yaml](https://github.com/databricks-industry-solutions/many-model-forecasting/blob/main/mmf_sa/models/models_conf.yaml). +A comprehensive list of local models currently supported by MMF is available [here](https://github.com/databricks-industry-solutions/many-model-forecasting/blob/main/mmf_sa/models/README.md). Now, run the forecasting using ```run_forecast``` function with the ```active_models``` list specified above: @@ -140,7 +140,7 @@ active_models = [ ] ``` -The models prefixed with "Auto" perform hyperparameter optimization within a specified range (see below for more detail). A comprehensive list of models currently supported by MMF is available in the [models_conf.yaml](https://github.com/databricks-industry-solutions/many-model-forecasting/blob/main/mmf_sa/models/models_conf.yaml). +The models prefixed with "Auto" perform hyperparameter optimization within a specified range (see below for more detail). A comprehensive list of models currently supported by MMF is available [here](https://github.com/databricks-industry-solutions/many-model-forecasting/blob/main/mmf_sa/models/README.md). Now, with the following command, we run the [examples/run_daily.py](https://github.com/databricks-industry-solutions/many-model-forecasting/blob/main/examples/run_daily.py) notebook that will in turn call ```run_forecast``` function and loop through the ```active_models``` list. @@ -223,7 +223,7 @@ active_models = [ ] ``` -A comprehensive list of models currently supported by MMF is available in the [models_conf.yaml](https://github.com/databricks-industry-solutions/many-model-forecasting/blob/main/mmf_sa/models/models_conf.yaml). +A comprehensive list of models currently supported by MMF is available [here](https://github.com/databricks-industry-solutions/many-model-forecasting/blob/main/mmf_sa/models/README.md). Now, with the following command, we run [examples/run_daily.py](https://github.com/databricks-industry-solutions/many-model-forecasting/blob/main/examples/run_daily.py) notebook that will in turn run ```run_forecast``` function. We loop through the ```active_models``` list for the same reason mentioned above (see the global model section). diff --git a/examples/daily/foundation_daily.py b/examples/daily/foundation_daily.py index 3b7b281..60a57af 100644 --- a/examples/daily/foundation_daily.py +++ b/examples/daily/foundation_daily.py @@ -108,7 +108,7 @@ def transform_group(df): # COMMAND ---------- # MAGIC %md ### Models -# MAGIC Let's configure a list of models we are going to apply to our time series for evaluation and forecasting. A comprehensive list of all supported models is available in [mmf_sa/models/models_conf.yaml](https://github.com/databricks-industry-solutions/many-model-forecasting/blob/main/mmf_sa/models/models_conf.yaml). Look for the models where `model_type: foundation`; these are the foundation models we install from [chronos](https://pypi.org/project/chronos-forecasting/), [uni2ts](https://pypi.org/project/uni2ts/) and [timesfm](https://pypi.org/project/timesfm/). Check their documentation for the detailed description of each model. +# MAGIC Let's configure a list of models we are going to apply to our time series for evaluation and forecasting. A comprehensive list of all supported models is available in [mmf_sa/models/README.md](https://github.com/databricks-industry-solutions/many-model-forecasting/blob/main/mmf_sa/models/README.md). Look for the models where `model_type: foundation`; these are the foundation models we install from [chronos](https://pypi.org/project/chronos-forecasting/), [uni2ts](https://pypi.org/project/uni2ts/) and [timesfm](https://pypi.org/project/timesfm/). Check their documentation for the detailed description of each model. # MAGIC # MAGIC Foundation time series models are pretrained on millions or billions of time series. These models can produce analysis (i.e. forecasting, anomaly detection, classfication) on an unforeseen time series without training or tuning. You can modify the hyperparameters in [mmf_sa/models/models_conf.yaml](https://github.com/databricks-industry-solutions/many-model-forecasting/blob/main/mmf_sa/models/models_conf.yaml) or overwrite the default values in [mmf_sa/forecasting_conf.yaml](https://github.com/databricks-industry-solutions/many-model-forecasting/blob/main/mmf_sa/forecasting_conf.yaml). You can also introduce new hyperparameters that are supported by the base models. To do this, first add those hyperparameters under the model specification in [mmf_sa/models/models_conf.yaml](https://github.com/databricks-industry-solutions/many-model-forecasting/blob/main/mmf_sa/models/models_conf.yaml). Then, include these hyperparameters inside the model instantiation which happens in the model pipeline script: e.g. `ChronosT5Tiny` class in [mmf_sa/models/chronosforecast/ChronosPipeline.py](https://github.com/databricks-industry-solutions/many-model-forecasting/blob/main/mmf_sa/models/chronosforecast/ChronosPipeline.py). diff --git a/examples/daily/global_daily.py b/examples/daily/global_daily.py index d4b27f9..c99394c 100644 --- a/examples/daily/global_daily.py +++ b/examples/daily/global_daily.py @@ -110,7 +110,7 @@ def transform_group(df): # COMMAND ---------- # MAGIC %md ### Models -# MAGIC Let's configure a list of models we are going to apply to our time series for evaluation and forecasting. A comprehensive list of all supported models is available in [mmf_sa/models/models_conf.yaml](https://github.com/databricks-industry-solutions/many-model-forecasting/blob/main/mmf_sa/models/models_conf.yaml). Look for the models where `model_type: global`; these are the global models we import from [neuralforecast](https://github.com/Nixtla/neuralforecast). Check their documentation for the detailed description of each model. +# MAGIC Let's configure a list of models we are going to apply to our time series for evaluation and forecasting. A comprehensive list of all supported models is available in [mmf_sa/models/README.md](https://github.com/databricks-industry-solutions/many-model-forecasting/blob/main/mmf_sa/models/README.md). Look for the models where `model_type: global`; these are the global models we import from [neuralforecast](https://github.com/Nixtla/neuralforecast). Check their documentation for the detailed description of each model. # MAGIC # MAGIC Some of these models perform [hyperparameter optimization](https://nixtlaverse.nixtla.io/neuralforecast/examples/automatic_hyperparameter_tuning.html) on its own to search for the best parameters. You can specify the range of the search or fix the values in [mmf_sa/models/models_conf.yaml](https://github.com/databricks-industry-solutions/many-model-forecasting/blob/main/mmf_sa/models/models_conf.yaml) or overwrite the default values in [mmf_sa/forecasting_conf.yaml](https://github.com/databricks-industry-solutions/many-model-forecasting/blob/main/mmf_sa/forecasting_conf.yaml). You can also introduce new hyperparameters that are supported by the base models. To do this, first add those hyperparameters under the model specification in [mmf_sa/models/models_conf.yaml](https://github.com/databricks-industry-solutions/many-model-forecasting/blob/main/mmf_sa/models/models_conf.yaml). Then, include these hyperparameters inside the model instantiation which happens in the model pipeline script: e.g. `NeuralFcAutoNBEATSx` class in [mmf_sa/models/neuralforecast/NeuralForecastPipeline.py](https://github.com/databricks-industry-solutions/many-model-forecasting/blob/main/mmf_sa/models/neuralforecast/NeuralForecastPipeline.py). diff --git a/examples/daily/local_univariate_daily.py b/examples/daily/local_univariate_daily.py index 3b75fe3..9a5dd16 100644 --- a/examples/daily/local_univariate_daily.py +++ b/examples/daily/local_univariate_daily.py @@ -125,7 +125,7 @@ def transform_group(df): # COMMAND ---------- # MAGIC %md ### Models -# MAGIC Let's configure a list of models we are going to apply to our time series for evaluation and forecasting. A comprehensive list of all supported models is available in [mmf_sa/models/models_conf.yaml](https://github.com/databricks-industry-solutions/many-model-forecasting/blob/main/mmf_sa/models/models_conf.yaml). Look for the models where `model_type: local`; these are the local models we import from [statsforecast](https://github.com/Nixtla/statsforecast), [r fable](https://cran.r-project.org/web/packages/fable/vignettes/fable.html) and [sktime](https://github.com/sktime/sktime). Check their documentations for the detailed description of each model. +# MAGIC Let's configure a list of models we are going to apply to our time series for evaluation and forecasting. A comprehensive list of all supported models is available in [mmf_sa/models/README.md](https://github.com/databricks-industry-solutions/many-model-forecasting/blob/main/mmf_sa/models/README.md). Look for the models where `model_type: local`; these are the local models we import from [statsforecast](https://github.com/Nixtla/statsforecast), [r fable](https://cran.r-project.org/web/packages/fable/vignettes/fable.html) and [sktime](https://github.com/sktime/sktime). Check their documentations for the detailed description of each model. # MAGIC # MAGIC Some of these models perform hyperparameter optimization ([statsforecast Automatic Forecasting](https://nixtlaverse.nixtla.io/statsforecast/index.html#automatic-forecasting)) on its own for some hyperparameters. For other hyperparameters or models, you can modify the hyperparameters in [mmf_sa/models/models_conf.yaml](https://github.com/databricks-industry-solutions/many-model-forecasting/blob/main/mmf_sa/models/models_conf.yaml) or overwrite the default values in [mmf_sa/forecasting_conf.yaml](https://github.com/databricks-industry-solutions/many-model-forecasting/blob/main/mmf_sa/forecasting_conf.yaml). You can also introduce new hyperparameters that are supported by the base models. To do this, first add those hyperparameters under the model specification in [mmf_sa/models/models_conf.yaml](https://github.com/databricks-industry-solutions/many-model-forecasting/blob/main/mmf_sa/models/models_conf.yaml). Then, include these hyperparameters inside the model instantiation which happens in the model pipeline script: e.g. `StatsFcAutoArima` class in [mmf_sa/models/statsforecast/StatsFcForecastingPipeline.py](https://github.com/databricks-industry-solutions/many-model-forecasting/blob/main/mmf_sa/models/statsforecast/StatsFcForecastingPipeline.py). diff --git a/examples/external_regressors/global_external_regressors_daily.py b/examples/external_regressors/global_external_regressors_daily.py index f68f52a..9039e5d 100644 --- a/examples/external_regressors/global_external_regressors_daily.py +++ b/examples/external_regressors/global_external_regressors_daily.py @@ -95,7 +95,7 @@ # COMMAND ---------- # MAGIC %md ### Models -# MAGIC Let's configure a list of models we are going to apply to our time series for evaluation and forecasting. A comprehensive list of all supported models is available in [mmf_sa/models/models_conf.yaml](https://github.com/databricks-industry-solutions/many-model-forecasting/blob/main/mmf_sa/models/models_conf.yaml). Look for the models where `model_type: global`; these are the global models we import from [neuralforecast](https://github.com/Nixtla/neuralforecast). Check their documentation for the detailed description of each model. +# MAGIC Let's configure a list of models we are going to apply to our time series for evaluation and forecasting. A comprehensive list of all supported models is available in [mmf_sa/models/README.md](https://github.com/databricks-industry-solutions/many-model-forecasting/blob/main/mmf_sa/models/README.md). Look for the models where `model_type: global`; these are the global models we import from [neuralforecast](https://github.com/Nixtla/neuralforecast). Check their documentation for the detailed description of each model. # MAGIC # MAGIC Exogenous regressors are currently only supported for [some models](https://nixtlaverse.nixtla.io/neuralforecast/models.html) (e.g. `NeuralForecastAutoNBEATSx`). The following list of models support exogenous regressors. diff --git a/examples/external_regressors/local_univariate_external_regressors_daily.py b/examples/external_regressors/local_univariate_external_regressors_daily.py index 67c0774..41e1ee9 100644 --- a/examples/external_regressors/local_univariate_external_regressors_daily.py +++ b/examples/external_regressors/local_univariate_external_regressors_daily.py @@ -100,7 +100,7 @@ # COMMAND ---------- # MAGIC %md ### Models -# MAGIC Let's configure a list of models we are going to apply to our time series for evaluation and forecasting. A comprehensive list of all supported models is available in [mmf_sa/models/models_conf.yaml](https://github.com/databricks-industry-solutions/many-model-forecasting/blob/main/mmf_sa/models/models_conf.yaml). Look for the models where `model_type: local`; these are the local models we import from [statsforecast](https://github.com/Nixtla/statsforecast), [r fable](https://cran.r-project.org/web/packages/fable/vignettes/fable.html) and [sktime](https://github.com/sktime/sktime). Check their documentations for the description of each model. +# MAGIC Let's configure a list of models we are going to apply to our time series for evaluation and forecasting. A comprehensive list of all supported models is available in [mmf_sa/models/README.md](https://github.com/databricks-industry-solutions/many-model-forecasting/blob/main/mmf_sa/models/README.md). Look for the models where `model_type: local`; these are the local models we import from [statsforecast](https://github.com/Nixtla/statsforecast), [r fable](https://cran.r-project.org/web/packages/fable/vignettes/fable.html) and [sktime](https://github.com/sktime/sktime). Check their documentations for the description of each model. # MAGIC # MAGIC Exogenous regressors are currently only supported for [some models](https://nixtlaverse.nixtla.io/statsforecast/index.html#models) from statsforecast (e.g. `StatsForecastAutoArima`). But including non-supported models in the active model list doesn't harm: models that can't use exogenous regressors will simply ignore them. diff --git a/examples/hourly/foundation_hourly.py b/examples/hourly/foundation_hourly.py index 64b6df9..2ad6688 100644 --- a/examples/hourly/foundation_hourly.py +++ b/examples/hourly/foundation_hourly.py @@ -112,7 +112,7 @@ def transform_group(df): # COMMAND ---------- # MAGIC %md ### Models -# MAGIC Let's configure a list of models we are going to apply to our time series for evaluation and forecasting. A comprehensive list of all supported models is available in [mmf_sa/models/models_conf.yaml](https://github.com/databricks-industry-solutions/many-model-forecasting/blob/main/mmf_sa/models/models_conf.yaml). Look for the models where `model_type: foundation`; these are the foundation models we install from [chronos](https://pypi.org/project/chronos-forecasting/), [uni2ts](https://pypi.org/project/uni2ts/) and [timesfm](https://pypi.org/project/timesfm/). Check their documentation for the detailed description of each model. +# MAGIC Let's configure a list of models we are going to apply to our time series for evaluation and forecasting. A comprehensive list of all supported models is available in [mmf_sa/models/README.md](https://github.com/databricks-industry-solutions/many-model-forecasting/blob/main/mmf_sa/models/README.md). Look for the models where `model_type: foundation`; these are the foundation models we install from [chronos](https://pypi.org/project/chronos-forecasting/), [uni2ts](https://pypi.org/project/uni2ts/) and [timesfm](https://pypi.org/project/timesfm/). Check their documentation for the detailed description of each model. # COMMAND ---------- diff --git a/examples/hourly/global_hourly.py b/examples/hourly/global_hourly.py index 3e69ce9..f42cdff 100644 --- a/examples/hourly/global_hourly.py +++ b/examples/hourly/global_hourly.py @@ -112,7 +112,7 @@ def transform_group(df): # COMMAND ---------- # MAGIC %md ### Models -# MAGIC Let's configure a list of models we are going to apply to our time series for evaluation and forecasting. A comprehensive list of all supported models is available in [mmf_sa/models/models_conf.yaml](https://github.com/databricks-industry-solutions/many-model-forecasting/blob/main/mmf_sa/models/models_conf.yaml). Look for the models where `model_type: global`; these are the global models we import from [neuralforecast](https://github.com/Nixtla/neuralforecast). Check their documentation for the detailed description of each model. +# MAGIC Let's configure a list of models we are going to apply to our time series for evaluation and forecasting. A comprehensive list of all supported models is available in [mmf_sa/models/README.md](https://github.com/databricks-industry-solutions/many-model-forecasting/blob/main/mmf_sa/models/README.md). Look for the models where `model_type: global`; these are the global models we import from [neuralforecast](https://github.com/Nixtla/neuralforecast). Check their documentation for the detailed description of each model. # COMMAND ---------- diff --git a/examples/hourly/local_univariate_hourly.py b/examples/hourly/local_univariate_hourly.py index 7e287c0..80531be 100644 --- a/examples/hourly/local_univariate_hourly.py +++ b/examples/hourly/local_univariate_hourly.py @@ -119,7 +119,7 @@ def transform_group(df): # COMMAND ---------- # MAGIC %md ### Models -# MAGIC Let's configure a list of models we are going to apply to our time series for evaluation and forecasting. A comprehensive list of all supported models is available in [mmf_sa/models/models_conf.yaml](https://github.com/databricks-industry-solutions/many-model-forecasting/blob/main/mmf_sa/models/models_conf.yaml). Look for the models where `model_type: local`; these are the local models we import from [statsforecast](https://github.com/Nixtla/statsforecast). Check their documentations for the description of each model. +# MAGIC Let's configure a list of models we are going to apply to our time series for evaluation and forecasting. A comprehensive list of all supported models is available in [mmf_sa/models/README.md](https://github.com/databricks-industry-solutions/many-model-forecasting/blob/main/mmf_sa/models/README.md). Look for the models where `model_type: local`; these are the local models we import from [statsforecast](https://github.com/Nixtla/statsforecast). Check their documentations for the description of each model. # MAGIC # MAGIC *Note that hourly forecasting is currently not supported for `r fable` models.* diff --git a/examples/monthly/foundation_monthly.py b/examples/monthly/foundation_monthly.py index 62fa5ff..5afda87 100644 --- a/examples/monthly/foundation_monthly.py +++ b/examples/monthly/foundation_monthly.py @@ -121,7 +121,7 @@ def transform_group(df): # COMMAND ---------- # MAGIC %md ### Models -# MAGIC Let's configure a list of models we are going to apply to our time series for evaluation and forecasting. A comprehensive list of all supported models is available in [mmf_sa/models/models_conf.yaml](https://github.com/databricks-industry-solutions/many-model-forecasting/blob/main/mmf_sa/models/models_conf.yaml). Look for the models where `model_type: foundation`; these are the foundation models we install from [chronos](https://pypi.org/project/chronos-forecasting/), [uni2ts](https://pypi.org/project/uni2ts/) and [timesfm](https://pypi.org/project/timesfm/). Check their documentation for the detailed description of each model. +# MAGIC Let's configure a list of models we are going to apply to our time series for evaluation and forecasting. A comprehensive list of all supported models is available in [mmf_sa/models/README.md](https://github.com/databricks-industry-solutions/many-model-forecasting/blob/main/mmf_sa/models/README.md). Look for the models where `model_type: foundation`; these are the foundation models we install from [chronos](https://pypi.org/project/chronos-forecasting/), [uni2ts](https://pypi.org/project/uni2ts/) and [timesfm](https://pypi.org/project/timesfm/). Check their documentation for the detailed description of each model. # COMMAND ---------- diff --git a/examples/monthly/global_monthly.py b/examples/monthly/global_monthly.py index 9b2a38f..a389187 100644 --- a/examples/monthly/global_monthly.py +++ b/examples/monthly/global_monthly.py @@ -121,7 +121,7 @@ def transform_group(df): # COMMAND ---------- # MAGIC %md ### Models -# MAGIC Let's configure a list of models we are going to apply to our time series for evaluation and forecasting. A comprehensive list of all supported models is available in [mmf_sa/models/models_conf.yaml](https://github.com/databricks-industry-solutions/many-model-forecasting/blob/main/mmf_sa/models/models_conf.yaml). Look for the models where `model_type: global`; these are the global models we import from [neuralforecast](https://github.com/Nixtla/neuralforecast). Check their documentation for the detailed description of each model. +# MAGIC Let's configure a list of models we are going to apply to our time series for evaluation and forecasting. A comprehensive list of all supported models is available in [mmf_sa/models/README.md](https://github.com/databricks-industry-solutions/many-model-forecasting/blob/main/mmf_sa/models/README.md). Look for the models where `model_type: global`; these are the global models we import from [neuralforecast](https://github.com/Nixtla/neuralforecast). Check their documentation for the detailed description of each model. # COMMAND ---------- diff --git a/examples/monthly/local_univariate_monthly.py b/examples/monthly/local_univariate_monthly.py index b90ea54..ddd6f92 100644 --- a/examples/monthly/local_univariate_monthly.py +++ b/examples/monthly/local_univariate_monthly.py @@ -136,7 +136,7 @@ def transform_group(df): # COMMAND ---------- # MAGIC %md ### Models -# MAGIC Let's configure a list of models we are going to apply to our time series for evaluation and forecasting. A comprehensive list of all supported models is available in [mmf_sa/models/models_conf.yaml](https://github.com/databricks-industry-solutions/many-model-forecasting/blob/main/mmf_sa/models/models_conf.yaml). Look for the models where `model_type: local`; these are the local models we import from [statsforecast](https://github.com/Nixtla/statsforecast), [r fable](https://cran.r-project.org/web/packages/fable/vignettes/fable.html) and [sktime](https://github.com/sktime/sktime). Check their documentations for the description of each model. +# MAGIC Let's configure a list of models we are going to apply to our time series for evaluation and forecasting. A comprehensive list of all supported models is available in [mmf_sa/models/README.md](https://github.com/databricks-industry-solutions/many-model-forecasting/blob/main/mmf_sa/models/README.md). Look for the models where `model_type: local`; these are the local models we import from [statsforecast](https://github.com/Nixtla/statsforecast), [r fable](https://cran.r-project.org/web/packages/fable/vignettes/fable.html) and [sktime](https://github.com/sktime/sktime). Check their documentations for the description of each model. # COMMAND ---------- diff --git a/examples/weekly/foundation_weekly.py b/examples/weekly/foundation_weekly.py index 28487cf..d91d9a2 100644 --- a/examples/weekly/foundation_weekly.py +++ b/examples/weekly/foundation_weekly.py @@ -112,7 +112,7 @@ def transform_group(df): # COMMAND ---------- # MAGIC %md ### Models -# MAGIC Let's configure a list of models we are going to apply to our time series for evaluation and forecasting. A comprehensive list of all supported models is available in [mmf_sa/models/models_conf.yaml](https://github.com/databricks-industry-solutions/many-model-forecasting/blob/main/mmf_sa/models/models_conf.yaml). Look for the models where `model_type: foundation`; these are the foundation models we install from [chronos](https://pypi.org/project/chronos-forecasting/), [uni2ts](https://pypi.org/project/uni2ts/) and [timesfm](https://pypi.org/project/timesfm/). Check their documentation for the detailed description of each model. +# MAGIC Let's configure a list of models we are going to apply to our time series for evaluation and forecasting. A comprehensive list of all supported models is available in [mmf_sa/models/README.md](https://github.com/databricks-industry-solutions/many-model-forecasting/blob/main/mmf_sa/models/README.md). Look for the models where `model_type: foundation`; these are the foundation models we install from [chronos](https://pypi.org/project/chronos-forecasting/), [uni2ts](https://pypi.org/project/uni2ts/) and [timesfm](https://pypi.org/project/timesfm/). Check their documentation for the detailed description of each model. # COMMAND ---------- diff --git a/examples/weekly/global_weekly.py b/examples/weekly/global_weekly.py index 00f9cce..7363821 100644 --- a/examples/weekly/global_weekly.py +++ b/examples/weekly/global_weekly.py @@ -112,7 +112,7 @@ def transform_group(df): # COMMAND ---------- # MAGIC %md ### Models -# MAGIC Let's configure a list of models we are going to apply to our time series for evaluation and forecasting. A comprehensive list of all supported models is available in [mmf_sa/models/models_conf.yaml](https://github.com/databricks-industry-solutions/many-model-forecasting/blob/main/mmf_sa/models/models_conf.yaml). Look for the models where `model_type: global`; these are the global models we import from [neuralforecast](https://github.com/Nixtla/neuralforecast). Check their documentation for the detailed description of each model. +# MAGIC Let's configure a list of models we are going to apply to our time series for evaluation and forecasting. A comprehensive list of all supported models is available in [mmf_sa/models/README.md](https://github.com/databricks-industry-solutions/many-model-forecasting/blob/main/mmf_sa/models/README.md). Look for the models where `model_type: global`; these are the global models we import from [neuralforecast](https://github.com/Nixtla/neuralforecast). Check their documentation for the detailed description of each model. # COMMAND ---------- diff --git a/examples/weekly/local_univariate_weekly.py b/examples/weekly/local_univariate_weekly.py index e059c92..3860f92 100644 --- a/examples/weekly/local_univariate_weekly.py +++ b/examples/weekly/local_univariate_weekly.py @@ -125,7 +125,7 @@ def transform_group(df): # COMMAND ---------- # MAGIC %md ### Models -# MAGIC Let's configure a list of models we are going to apply to our time series for evaluation and forecasting. A comprehensive list of all supported models is available in [mmf_sa/models/models_conf.yaml](https://github.com/databricks-industry-solutions/many-model-forecasting/blob/main/mmf_sa/models/models_conf.yaml). Look for the models where `model_type: local`; these are the local models we import from [statsforecast](https://github.com/Nixtla/statsforecast), [r fable](https://cran.r-project.org/web/packages/fable/vignettes/fable.html) and [sktime](https://github.com/sktime/sktime). Check their documentations for the description of each model. +# MAGIC Let's configure a list of models we are going to apply to our time series for evaluation and forecasting. A comprehensive list of all supported models is available in [mmf_sa/models/README.md](https://github.com/databricks-industry-solutions/many-model-forecasting/blob/main/mmf_sa/models/README.md). Look for the models where `model_type: local`; these are the local models we import from [statsforecast](https://github.com/Nixtla/statsforecast), [r fable](https://cran.r-project.org/web/packages/fable/vignettes/fable.html) and [sktime](https://github.com/sktime/sktime). Check their documentations for the description of each model. # COMMAND ---------- diff --git a/mmf_sa/models/README.md b/mmf_sa/models/README.md new file mode 100644 index 0000000..b27c3f3 --- /dev/null +++ b/mmf_sa/models/README.md @@ -0,0 +1,63 @@ +# Supported Models + +Model hyperparameters can be modified under [mmf_sa/models/models_conf.yaml](https://github.com/databricks-industry-solutions/many-model-forecasting/blob/main/mmf_sa/models/models_conf.yaml). + +## Local +| model | source | covariate support | +|----------------------------------------|-------------------------|------------| +| StatsForecastBaselineWindowAverage | [Statsforecast Window Average](https://nixtlaverse.nixtla.io/statsforecast/src/core/models.html#windowaverage) | | +| StatsForecastBaselineSeasonalWindowAverage | [Statsforecast Seasonal Window Average](https://nixtlaverse.nixtla.io/statsforecast/src/core/models.html#seasonalwindowaverage) | | +| StatsForecastBaselineNaive | [Statsforecast Naive](https://nixtlaverse.nixtla.io/statsforecast/src/core/models.html#naive) | | +| StatsForecastBaselineSeasonalNaive | [Statsforecast Seasonal Naive](https://nixtlaverse.nixtla.io/statsforecast/src/core/models.html#seasonalnaive) | | +| StatsForecastAutoArima | [Statsforecast AutoARIMA](https://nixtlaverse.nixtla.io/statsforecast/src/core/models.html#autoarima) | ✅ | +| StatsForecastAutoETS | [Statsforecast AutoETS](https://nixtlaverse.nixtla.io/statsforecast/src/core/models.html#autoets) | | +| StatsForecastAutoCES | [Statsforecast AutoCES](https://nixtlaverse.nixtla.io/statsforecast/src/core/models.html#autoces) | | +| StatsForecastAutoTheta | [Statsforecast AutoTheta](https://nixtlaverse.nixtla.io/statsforecast/src/core/models.html#autotheta) | | +| StatsForecastTSB | [Statsforecast TSB](https://nixtlaverse.nixtla.io/statsforecast/src/core/models.html#tsb) | | +| StatsForecastADIDA | [Statsforecast ADIDA](https://nixtlaverse.nixtla.io/statsforecast/src/core/models.html#adida) | | +| StatsForecastIMAPA | [Statsforecast IMAPA](https://nixtlaverse.nixtla.io/statsforecast/src/core/models.html#imapa) | | +| StatsForecastCrostonClassic | [Statsforecast Croston Classic](https://nixtlaverse.nixtla.io/statsforecast/src/core/models.html#crostonclassic) | | +| StatsForecastCrostonOptimized | [Statsforecast Croston Optimized](https://nixtlaverse.nixtla.io/statsforecast/src/core/models.html#crostonoptimized) | | +| StatsForecastCrostonSBA | [Statsforecast Croston SBA](https://nixtlaverse.nixtla.io/statsforecast/src/core/models.html#crostonsba) | | +| RFableArima | [fable ARIMA](https://fable.tidyverts.org/reference/ARIMA.html) | | +| RFableETS | [fable ETS](https://fable.tidyverts.org/reference/ETS.html) | | +| RFableNNETAR | [fable NNETAR](https://fable.tidyverts.org/reference/NNETAR.html) | | +| RFableEnsemble | [RFableEnsemble ](https://github.com/databricks-industry-solutions/many-model-forecasting/blob/main/mmf_sa/models/r_fable/RFableForecastingPipeline.py) | | +| RDynamicHarmonicRegression | [RDynamicHarmonicRegression ](https://github.com/databricks-industry-solutions/many-model-forecasting/blob/main/mmf_sa/models/r_fable/RFableForecastingPipeline.py) | | +| SKTimeTBats | [sktime TBATS](https://www.sktime.net/en/latest/api_reference/auto_generated/sktime.forecasting.tbats.TBATS.html) | | +| SKTimeProphet | [sktime Prophet](https://www.sktime.net/en/latest/api_reference/auto_generated/sktime.forecasting.fbprophet.Prophet.html) | | +| SKTimeLgbmDsDt | [SKTimeLgbmDsDt](https://github.com/databricks-industry-solutions/many-model-forecasting/blob/main/mmf_sa/models/sktime/SKTimeForecastingPipeline.py) | | + +## Global +| model | source | covariate support | +|----------------------------------------|-------------------------|------------| +| NeuralForecastRNN | [NeuralForecast RNN](https://nixtlaverse.nixtla.io/neuralforecast/models.rnn.html) | ✅ | +| NeuralForecastLSTM | [NeuralForecast LSTM](https://nixtlaverse.nixtla.io/neuralforecast/models.lstm.html) | ✅ | +| NeuralForecastNBEATSx | [NeuralForecast NBEATSx](https://nixtlaverse.nixtla.io/neuralforecast/models.nbeatsx.html) | ✅ | +| NeuralForecastNHITS | [NeuralForecast NHITS](https://nixtlaverse.nixtla.io/neuralforecast/models.nhits.html) | ✅ | +| NeuralForecastAutoRNN | [NeuralForecast AutoRNN](https://nixtlaverse.nixtla.io/neuralforecast/models.html#autornn) | ✅ | +| NeuralForecastAutoLSTM | [NeuralForecast AutoLSTM](https://nixtlaverse.nixtla.io/neuralforecast/models.html#autolstm) | ✅ | +| NeuralForecastAutoNBEATSx | [NeuralForecast AutoNBEATSx](https://nixtlaverse.nixtla.io/neuralforecast/models.html#autonbeatsx) | ✅ | +| NeuralForecastAutoNHITS | [NeuralForecast AutoNHITS](https://nixtlaverse.nixtla.io/neuralforecast/models.html#autonhits) | ✅ | +| NeuralForecastAutoTiDE | [NeuralForecast AutoTiDE](https://nixtlaverse.nixtla.io/neuralforecast/models.html#autotide) | ✅ | +| NeuralForecastAutoPatchTST | [NeuralForecast AutoPatchTST](https://nixtlaverse.nixtla.io/neuralforecast/models.html#autopatchtst) | | + +## Foundation +| model | source | covariate support | +|----------------------------------------|-------------------------|------------| +| ChronosT5Tiny | [amazon/chronos-t5-tiny](https://huggingface.co/amazon/chronos-t5-tiny) | | +| ChronosT5Mini | [amazon/chronos-t5-mini](https://huggingface.co/amazon/chronos-t5-mini) | | +| ChronosT5Small | [amazon/chronos-t5-small](https://huggingface.co/amazon/chronos-t5-small) | | +| ChronosT5Base | [amazon/chronos-t5-base](https://huggingface.co/amazon/chronos-t5-base) | | +| ChronosT5Large | [amazon/chronos-t5-large](https://huggingface.co/amazon/chronos-t5-large) | | +| ChronosBoltTiny | [amazon/chronos-bolt-tiny](https://huggingface.co/amazon/chronos-bolt-tiny) | | +| ChronosBoltMini | [amazon/chronos-bolt-mini](https://huggingface.co/amazon/chronos-bolt-mini) | | +| ChronosBoltSmall | [amazon/chronos-bolt-small](https://huggingface.co/amazon/chronos-bolt-small) | | +| ChronosBoltBase | [amazon/chronos-bolt-base](https://huggingface.co/amazon/chronos-bolt-base) | | +| MoiraiSmall | [Salesforce/moirai-1.1-R-small](https://huggingface.co/Salesforce/moirai-1.1-R-small) | | +| MoiraiBase | [Salesforce/moirai-1.1-R-base](https://huggingface.co/Salesforce/moirai-1.1-R-base) | | +| MoiraiLarge | [Salesforce/moirai-1.1-R-large](https://huggingface.co/Salesforce/moirai-1.1-R-large) | | +| MoiraiMoESmall | [Salesforce/moirai-moe-1.0-R-small](https://huggingface.co/Salesforce/moirai-moe-1.0-R-small) | | +| MoiraiMoEBase | [Salesforce/moirai-moe-1.0-R-base](https://huggingface.co/Salesforce/moirai-moe-1.0-R-base) | | +| TimesFM_1_0_200m | [google/timesfm-1.0-200m-pytorch](https://huggingface.co/google/timesfm-1.0-200m-pytorch) | ✅ | +| TimesFM_2_0_500m | [google/timesfm-2.0-500m-pytorch](https://huggingface.co/google/timesfm-2.0-500m-pytorch) | ✅ |