Menggunakan Prophet

最終更新: 2 分で読めます このページを編集

Silakan merujuk ke “prophet Installation” untuk petunjuk instalasi prophet. Juga, silakan merujuk ke Quick Start (prophet | Quick Start) dalam dokumentasi resmi.

Membuat data deret waktu #

Buat data deret waktu dummy.

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)

png

Kereta Api 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

Membuat data untuk prakiraan dan menjalankan prakiraan #

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

png