-
Notifications
You must be signed in to change notification settings - Fork 1.7k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Same model from multiple libraries #2323
Comments
This sounds good, though I would be leaning towards making that a setup option. |
I was thinking that we will have a default priority list of aggregators and engines. But users will be able to provide their own priority to override that. The default list of engine priorities would be stored in the model container itself. The default list of aggregator priorities would be an input to I will draft the interface for review. |
@moezali1 @Yard1 @FedericoGarza PR has been submitted for implementing this without the aggregator (since we only have sktime for now) UsageGlobal settings (using setup)from sktime.forecasting.arima import AutoARIMA as PmdAutoARIMA
from sktime.forecasting.statsforecast import StatsForecastAutoARIMA
#### Set engine globally ----
exp.setup(data=data, engines={"auto_arima": "statsforecast"})
#### Produces a statsforecast model ----
model = exp.create_model("auto_arima")
assert isinstance(model, StatsForecastAutoARIMA)
exp.compare_models(include=["auto_arima"])
assert isinstance(model, StatsForecastAutoARIMA) Local Changes#### default auto_arima engine is pmdarima for now ----
exp.setup(data=data)
#### Produces a pmdarima model ----
model = exp.create_model("auto_arima")
assert isinstance(model, PmdAutoARIMA)
#### Override model engine locally ----
model = exp.create_model("auto_arima", engine="statsforecast")
assert isinstance(model, StatsForecastAutoARIMA)
# Original engine should remain the same (since the above changes was local to the call only)
assert exp.get_engine("auto_arima") == "pmdarima"
model = exp.create_model("auto_arima")
assert isinstance(model, PmdAutoARIMA)
# You can repeat the same for compare_models as well Notes;
|
Implements engines per #2323 (without aggregators)
Is your feature request related to a problem? Please describe.
In time series, many libraries provide the same models. Example,
AutoARIMA is available from pmdarima and a faster variant is available through statsforecast that now has a plugin in sktime.
Similarly, there are plans to probably add AutoARIMA from statsforecast to darts as well.
Describe the solution you'd like
Provide a way for users to choose the engine they would like to use for the model. One example could be
In the future if darts is available as a plugin in sktime, we could do something like this
NOTE: The aggregator has to be available as a sktime extention for this to work.
Additional context
This is similar to the engine concept in R/tidymodels, although we are separating the aggregator from the
The text was updated successfully, but these errors were encountered: