API for FB Prophet model

Has anyone yet created an eay-to-use API in Julia for Facebook’s prophet model with a basic “fit” and “predict” functionality?
(Quick Start | Prophet)

I’m simply asking because there’s a good chance someone also has already done (which would save time), but I can’t seem to locate such work.

Thanks

2 Likes

Funny that you ask because I did something like this just a couple of weeks ago. It’s not yet public, but I’ll make it so later today (not on my computer right now).

2 Likes

Excellent!

Aight, so here it is: https://github.com/torfjelde/Prophet.jl

It’s in a very raw form atm, but at least it’s something we can work with. We might want to make it more similar to Python’s prophet, but atm it’s just the bare bones to get up and running with inference.

It’s also missing certain functionalities, e.g. using logit-likelihood, etc., which I just haven’t gotten around to yet, but will be trivial to add.

3 Likes

Thanks this looks awesome!
I wanted something like this as well.

Is there a chance this can be included in MLJ @ablaom @tlienart

I’m not up to date on the latest in terms of MLJ supporting forecasting models (there’s timeseriesclassification.jl ~ MLJTime but it’s for classification not for forecasting afaiu); last I checked this isn’t developed yet (similar to sklearn only providing a modicum of support to TS).

Side note for other new ML packages: it’s not up to MLJ to integrate models, rather it’s up to model providers to implement (and maintain) the relevant MLJ interface e.g. like EvoTrees.jl did here: https://github.com/Evovest/EvoTrees.jl/blob/main/src/MLJ.jl

2 Likes

I’m not aware of MLJ integration with Turing, @torfjelde is this set up?

In Soss we have SossMLJ.jl but it’s in need of an update.

2 Likes

Agree, this is a very good start.

However, I can’t run the code at the moment due to issues with pulling the Python prophet package - so removing Python dependencies altogether would be nice as a next step.

Try setting ENV["PYTHON"] = "" and rebuild to make it use the julia-specific Conda installation.

But yeah, long-term we want to move away from using any Python.

This would be supremely useful for me as well. Perhaps we can chat about collaborating to add functionality to this package…

One possibility as with calling any Python project would be to migrate to PythonCall.jl for transparent installation. It’s good for dependencies.

You want to get rid of Python however, I guess then the Python project is wrapping something you could wrap directly, though calling Python do do that is likely not a problem.

More importantly, while I thought FB’s Prophet interesting, maybe state-of-the-art for some time series-prediction at the time, I doubt is is any more. Unless something changed. Has it been updated, is it still good enough, and I think it was also chosen for usability reasons by many users. I would really want to know what is (currently considered) best and easiest for good (neural network-based) time-series prediction.

1 Like