After playing around a bit with different ideas, I’ve decided to build a big wrapper library for like 6 different types of forecasting engines with a common interface.
I found the Darts library in Python which attempts the same thing. I can’t recommend it. They force the use of their own TimeSeries object over pandas dataframes, even though most of the forecasting engines they’re wrapping require pandas dataframes. So you get some janky collection object you can’t view the contents of easily to check for alignment issues instead of a dataframe that you can view as an interactive table.
No bueno. Anyway, doing it my own way. The new version of Tetsuo is MK VI — this one will be called Argonaut. Currently it will support Prophet, CatBoost, ARIMA, LSTM, AUTO_ARIMA, SARIMAX. That list is subject to change as my exposure to how they work increases.
I’m also fundamentally altering the project structure to accomodate this into something more object oriented to compartmentalize functionality from each forecasting library into their own sections versus some big sprawled out thing originally intended for just Prophet.
This will also make the room I need for the “walking forecast” functionality I need to get the error metrics I’ve been needing to be coherent for so long actually representing forecasts instead of history/fitted-history deviation, which wrecked Centurion about as fast as it was developed.
It’ll be a slower ship, but it’ll be a more accurate one. I say that with some confidence because I’m in the pleasant position with this project of knowing what went wrong and exactly how to fix it.