Live data from Hacker News

Kats: One stop shop for time series analysis in Python

facebookresearch.github.io

21–30 of 30 posts

Re: Kats: One stop shop for time series analysis in Python

#23

Anybody know where the name comes from? I'm hoping this is a tip of the hat at Zero Wing , otherwise you have no chance to survive make your time.

Kats = Kits to Analyze Time Series: https://github.com/facebookresearch/Kats/blob/master/tutoria...

Re: Kats: One stop shop for time series analysis in Python

#25
post #15

For those interested in time series library, we are developing Darts [1], which focuses on making it easy & straightforward to build and use forecasting models. Out of the box it contains traditional models (such as ARIMA) as well as recent deep learning ones (like N-Beats). It also allows to easily train models on multiple time series (potentially scaling to large datasets), as well as on multivariate series (i.e.,…

is the focus on wrapping existing algorithms (like statsmodels) or are you developing at that level as well?

Both - some models are wrapped (like ARIMA & ETS around statsmodels, Prophet around fbprophet) and we write others ourselves (RNNs, TCNs, N-Beats, ...). Basically we take a pragmatic approach here, we do whatever is best to use a given model in Darts.

Re: Kats: One stop shop for time series analysis in Python

#26

Kats looks like a useful library, but I’m a bit surprised to see they’re not enabling parallel execution for the numba kernels. Surely FB must have time-series data large-enough they’d see some performance benefits from parallelism in these functions?

Probably not for the team that uses these tools. I'd suspect it's mostly compute, revenue and user count predictions.

Re: Kats: One stop shop for time series analysis in Python

#27

Is Granger causality a common method for the kind of time series analysis made by this library? I worked with this algorithm before so I was curious, but I can't find it in the API.

Im not sure what you are asking exacylu, but statmodels has vector autoregression included.

Re: Kats: One stop shop for time series analysis in Python

#28

What are suggested online courses to learn about multi variable time series forecasting? My skill level is - ok with university level Biometrics but that was 10+ years ago, and I am web/self-taught python for web apps and automating GIS tasks.

Good question. I've been working on this too iterating through Youtube and Medium tutorials and working through all the notebooks I can find. The best examples I've found use LSTM for deep learning and vector autoregression (VAR) for classical statistical forecasting. This series might be useful to you. https://www.youtube.com/watch?v=ZoJ2OctrFLA&list=PLvcbYUQ5t0...

Great, thanks I'll check it out.

Re: Kats: One stop shop for time series analysis in Python

#29
post #15

For those interested in time series library, we are developing Darts [1], which focuses on making it easy & straightforward to build and use forecasting models. Out of the box it contains traditional models (such as ARIMA) as well as recent deep learning ones (like N-Beats). It also allows to easily train models on multiple time series (potentially scaling to large datasets), as well as on multivariate series (i.e.,…

How well does it deal with time series sets that don't fit fully in memory?

Or put another way , how well does it scale horizontally to multiple machines.

We fine most time series libraries to be about the same in terms of features and speed, but very few can handle large datasets well, if at all.

And, of course, thanks for sharing your library, I'll definitely try it out!!

Re: Kats: One stop shop for time series analysis in Python

#30
post #15

For those interested in time series library, we are developing Darts [1], which focuses on making it easy & straightforward to build and use forecasting models. Out of the box it contains traditional models (such as ARIMA) as well as recent deep learning ones (like N-Beats). It also allows to easily train models on multiple time series (potentially scaling to large datasets), as well as on multivariate series (i.e.,…

How well does it deal with time series sets that don't fit fully in memory? Or put another way , how well does it scale horizontally to multiple machines. We fine most time series libraries to be about the same in terms of features and speed, but very few can handle large datasets well, if at all. And, of course, thanks for sharing your library, I'll definitely try it out!!

This is supported but only by neural-nets models, which are fit using SGD, hence naturally not requiring the whole dataset in memory. Other models like ARIMA do need the full series loaded in memory.

The models that work on multiple time series in Darts accept Sequence[TimeSeries] for their fit() method. These sequences can either be Lists (fully in memory, simplest option), or when needed it can be a custom Sequence which for example does lazy loading from disk (somewhat similar to what PyTorch Datasets are doing) with the __getitem__() method.

If you need even more control, for instance because you have only one very long series that doesn't fit in memory then you can implement your own Darts "TrainingDataset". In this case you can control how to slice your series exactly.

Edit: I realised this only answers the first sentence of your comment ;) For now there's no mechanism for scaling to multiple machines beyond what PyTorch is already offering. AFAIK it's reasonably easy to scale to multiple GPUs on a machine, but I'm not sure how it would scale on several machines. We never had to try this yet! (Note that actually a single CPU can handle training deep nets models on 10's of thousands of time series similar to the M4 competition in a fairly reasonable time).

Post reply on HN