Bonjour, dans le cadre de mon projet, je recherche la syntaxe permettant d’entrer dans Prophet une variable exogène. Cordialement.
On n’est jamais mieux servi que par soi-même ; si ça peut servir à quelqu’un :
Problématique ; on veut prédire la consommation selon le temps (à la journée) en s’aidant
d’une variable exogène (la température)
Mise au format PROPHET de ts_13_22_deb (la consommation, variable à prédire)
df_deb[“ds”] = df_deb.index # la consommation passée ; index en datetime
df_deb[“y”]= df_deb[“Consommation (MW)”]
Mise au format de la variable exogène “température”
temp_deb = pd.DataFrame(temp_deb) # les températures passées
temp_fin = pd.DataFrame(temp_fin) # les prévisions de température sur la période à prédire
temp_deb[‘ds’] = temp_deb.index # index en datetime
temp_deb[‘y’] = temp_deb[“Température”]
temp_fin[‘ds’] = temp_fin.index
temp_fin[‘y’] = temp_fin[“Température”]
Ajout de Température à df_deb (température et consommation doivent être dans le même df
df_deb[“Température”]= temp_deb[“Température”]
Entraînement de Prophet avec la Température en variable exogène
m = Prophet()
m.add_regressor(‘Température’)
m.fit(df_deb)
Définition de la fonction permettant la prise en compte au bon format des futures valeurs de # # la températures en variable exogène :
def weather_temp(ds): # OK ?
date = (pd.to_datetime(ds)).date()
if df_deb[date:].empty:
return temp_fin[date:]['Température'].values[0]
else:
return (df_deb[date:]['Température']).values[0]
return 0
Prédiction
future = m.make_future_dataframe(periods=14) # OK ?
future[‘Température’] = future[‘ds’].apply(weather_temp)
pred_prox_9_14 = m.predict(future)