1

I have a large number of different timeseries and I need to create a forecast for each one of them.

Are there packages that enable:

  1. Auto tuning of models?
  2. Cross validation of different tuned models - both classical models and Neural Nets models (ARIMA, Holt, Holt-Winters, Prophet, LSTM, etc) using a chosen measurement/s (For example MAPE, RMSE) and choosing for each timeseries the prediction of the best fitted model?

Editing: I found pyAF which is nice, but it's not well documented and it seems there is still some work on it - hence it's not good enough for me.

Thanks.

QueenP
  • 11
  • 3

2 Answers2

1

Auto tuning of models?

For ARIMA models, there is Pyramid which duplicates R's auto.arima function, but it is still not mature.

Statsmodels has a pretty decent implementation of Holt-Winters.

For the other methods, auto-tuning the models is still an open question.

Cross validation of different tuned models

Scikit-learn comes with a time series split method that can be used for times series cross validation. However it doesn't do much besides that, it doesn't do model evaluation or model selection.

If PyAF doesn't meet your criteria, I doubt you will find anything better than that, unfortunately there's still a lot of work to be done for time series in Python (compared to what's available in R).

Skander H.
  • 10,602
  • 2
  • 33
  • 81
  • Thank you very much. Assuming I will use R instead, what would you recommend in order to automatically choose the best model (and perhaps auto tune them first)? – QueenP Jan 30 '19 at 09:52
  • @QueenP the forecast package in R is your best bet. – Skander H. Jan 31 '19 at 20:55
0

Check out AnticiPy which is an open-source tool for forecasting using Python and developed by Sky.

The goal of AnticiPy is to provide reliable forecasts for a variety of time series data, while requiring minimal user effort.

AnticiPy can handle trend as well as multiple seasonality components, such as weekly or yearly seasonality. There is built-in support for holiday calendars, and a framework for users to define their own event calendars. The tool is tolerant to data with gaps and null values, and there is an option to detect outliers and exclude them from the analysis.

Ease of use has been one of our design priorities. A user with no statistical background can generate a working forecast with a single line of code, using the default settings. The tool automatically selects the best fit from a list of candidate models, and detects seasonality components from the data. Advanced users can tune this list of models or even add custom model components, for scenarios that require it. There are also tools to automatically generate interactive plots of the forecasts (again, with a single line of code), which can be run on a Jupyter notebook, or exported as .html or .png files.

Check it out here: https://pypi.org/project/anticipy/