Évaluer les performances du modèle de prévision
Dans cet exercice, vous allez évaluer et visualiser les performances du modèle de prévision que vous avez construit dans l’exercice précédent.
Le jeu de données test, les résultats ml_forecast et plot_series sont préchargés, ainsi que les fonctions d’évaluation (mape, rmse, coverage, ci‑dessous) et pandas sous l’alias pd.
def mape(y, yhat):
mape = mean(abs(y - yhat)/ y)
return mape
def rmse(y, yhat):
rmse = (mean((y - yhat) ** 2 )) ** 0.5
return rmse
def coverage(y, lower, upper):
coverage = sum((y <= upper) & (y >= lower)) / len(y)
return coverage
Commençons par évaluer les performances du modèle, puis visualisons la prévision.
Cet exercice fait partie du cours
<cours>Concevoir des pipelines de prévision pour la production</cours>Instructions de l’exercice
- Créez
fcen fusionnant les jeux de donnéesml_forecastettest. - Calculez
rmseen utilisant la fonction personnaliséermse()fournie, en passantfc["y"]puisfc[model]comme arguments, dans cet ordre ; stockez le résultat dans une variable appeléerà l’intérieur de la boucle for. - Terminez l’évaluation en triant
fc_performancepar rmse par ordre croissant.
Exercice interactif pratique
Essayez cet exercice en complétant ce code d’exemple.
# Combine the data
fc = ml_forecast.____(____, how="left", on="ds")
fc_performance = None
for model in ["LGBMRegressor", "XGBRegressor", "LinearRegression"]:
m = mape(y=fc["y"], yhat=fc[model])
# Calculate RMSE
r = ____(y=fc["____"], yhat=fc[____])
c = coverage(y=fc["y"], lower=fc[model + "-lo-95"], upper=fc[model + "-hi-95"])
perf = {"model": model, "mape": m, "rmse": r, "coverage": c}
if fc_performance is None:
fc_performance = pd.DataFrame([perf])
else:
fc_performance = pd.concat([fc_performance, pd.DataFrame([perf])])
# Sort the performance metrics by rmse
print(fc_performance.____("____"))