#python #facebook-prophet
#python #facebook-prophet
Вопрос:
У меня есть модель Prophet, которая предсказывает поставки компании. Когда я добавляю специальные события (рекламные акции и праздники), они, похоже, не влияют на прогнозы модели. Я делаю что-то не так? Во всех проверенных мною примерах праздники всегда влияют на модель Prophet.
from fbprophet.make_holidays import make_holidays_df
import datetime
country_name= 'ES'
festivos=make_holidays_df([2017,2018,2019,2020],'ES')
festivos['dia']=0
for index, row in festivos.iterrows():
festivos.loc[index,"dia"]='Festivo ' str(datetime.datetime.weekday(festivos.iloc[index]["ds"]))
festivo2=pd.DataFrame({'holiday':festivos['dia'],'ds':festivos['ds'],'lower_window':-9,'upper_window':1,})
festivo1=pd.DataFrame({'holiday':festivos['holiday'],'ds':festivos['ds'],'lower_window':-9,'upper_window':1,})
festivo=pd.concat((festivo2,festivo1))
festivo=pd.DataFrame(festivo)
festivo
ph_home = Prophet(holidays=festivo)
ph_home.add_country_holidays(country_name='ES')
ph_home.fit(home_train)
fut_home= ph_home.make_future_dataframe(periods=6,freq='M')
pred_home=ph_home.predict(fut_home)
fig1 =ph_home.plot(pred_home)
a = add_changepoints_to_plot(fig1.gca(), ph_home, pred_home)
fig1=ph_home.plot_components(pred_home)
pd.concat([home_train.set_index('ds')['y'],pred_home.set_index('ds')['yhat']],axis=1).plot(figsize=(15,10))
Эффект праздников в моей модели Prophet
Фрейм данных, который я использую для обучения модели prophet
Комментарии:
1. Можете ли вы опубликовать образец своих данных? Я использовал ваш код с данными примера FBProphet, и он сработал так, как вы ожидали.
2. Данные, которые я использую, имеют правильную форму, запрошенную моделью prophet, я полагаю:
Ответ №1:
Похоже, это связано с вашей ежемесячной агрегацией. Смотрите Последнее примечание здесь.
With data that has been aggregated to weekly or monthly frequency, holidays that don’t fall on the particular date used in the data will be ignored