Using Prophet

Please refer to “prophet Installation” for prophet installation instructions. Also, please refer to Quick Start (prophet | Quick Start) in the official documentation.

Create time series data

Create dummy time series data.

import numpy as np
import pandas as pd
import seaborn as sns
from prophet import Prophet

sns.set(rc={"figure.figsize": (15, 8)})

date = pd.date_range("2020-01-01", periods=365, freq="D")
y = [np.cos(di.weekday()) + di.month % 2 + np.log(i + 1) for i, di in enumerate(date)]

df = pd.DataFrame({"ds": date, "y": y})
df.index = date
sns.lineplot(data=df)


Train Prophet

m = Prophet(yearly_seasonality=False, daily_seasonality=True)
m.fit(df)

Initial log joint probability = -24.5101
<prophet.forecaster.Prophet at 0x7fe3b5d93d60>
Iter      log prob        ||dx||      ||grad||       alpha      alpha0  # evals  Notes
99       798.528    0.00821602       204.832           1           1      136
Iter      log prob        ||dx||      ||grad||       alpha      alpha0  # evals  Notes
136       799.486    0.00040141       83.1101    5.02e-06       0.001      225  LS failed, Hessian reset
158       799.529    0.00027729       48.4168   3.528e-06       0.001      291  LS failed, Hessian reset
199        799.55   3.15651e-05       54.5691           1           1      345
Iter      log prob        ||dx||      ||grad||       alpha      alpha0  # evals  Notes
204       799.553   3.54297e-05       56.7445    5.36e-07       0.001      397  LS failed, Hessian reset
267       799.556   6.19351e-08       44.7029      0.2081           1      490
Optimization terminated normally:
Convergence detected: relative gradient magnitude is below tolerance


Create data for forecasts and run forecasts

future = m.make_future_dataframe(periods=90)
forecast = m.predict(future)
fig1 = m.plot(forecast)