winedarksea / AutoTS

Automated Time Series Forecasting
MIT License
1.05k stars 96 forks source link

Save best model for each serie instead of best model overall #203

Closed YahyaL closed 8 months ago

YahyaL commented 8 months ago

Just discovered this library and it's functionnalities. I read past issues related to exporting the best model. My understanding is that we are NOT exporting the template for the best model for each time-serie but the best performing model overall for all time-series (when n=1). This means that during deployment, the best model overall will generate the forecasts for all series, which may degrade the performance for individual series where we are using a suboptimal model. Would it be better in a use case where we have to generate daily forecasts for thousands of time-series to save the best model for each time-serie and retrain only the best model daily with new data? I can for example find the best model for each serie once a month and then use that same model for that serie for the whole month. Is this approach accurate? Thanks!

winedarksea commented 8 months ago

What you want is ensemble=['horizontal-max'] which is where it chooses the best model per series, exactly as you are asking for. It packages that all up in a single Ensemble model parameter set (usually a pretty massive piece of json). To graph the chosen models by type:

if model.best_model_ensemble == 2:
    plt.subplots_adjust(bottom=0.5)
    model.plot_horizontal_transformers()
    plt.show()
    model.plot_horizontal_model_count()
    plt.show()
YahyaL commented 8 months ago

Tried it and it's exactly what I was looking for. Thanks!