In [108]:
%matplotlib inline
import pandas as pd
import numpy as np
from fbprophet import Prophet
In [109]:
df = pd.read_csv('piwik-export-main-metrics_2015-07-31_2017-05-26.csv',
sep=',', parse_dates=['Date'], usecols=('Date', 'Visits'))
df.head()
Out[109]:
In [110]:
df.set_index('Date').plot()
Out[110]:
In [111]:
df.columns = ['ds', 'y']
df.head()
Out[111]:
In [112]:
prophet = Prophet()
prophet.fit(df)
future = prophet.make_future_dataframe(periods=365, freq='W')
forecast = prophet.predict(future)
prophet.plot(forecast)
Out[112]:
In [113]:
prophet.plot_components(forecast);
In [114]:
import datetime
from dateutil import rrule
gtalug_meeting_days = list(rrule.rrule(freq=rrule.MONTHLY, dtstart=datetime.date(2015, 8, 2),
until=datetime.date(2017, 5, 26), byweekday=(rrule.TU), bysetpos=2))
meetings = pd.DataFrame({
'holiday': 'meeting',
'ds': pd.to_datetime(gtalug_meeting_days),
'lower_window': 0,
'upper_window': 5,
})
meetings.tail()
Out[114]:
In [115]:
prophet = Prophet(holidays=meetings).fit(df)
future = prophet.make_future_dataframe(periods=365)
forecast = prophet.predict(future)
prophet.plot(forecast)
Out[115]:
In [116]:
prophet.plot_components(forecast)
Out[116]: