CommencerCommencez gratuitement

É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>
Voir le cours

Instructions de l’exercice

  • Créez fc en fusionnant les jeux de données ml_forecast et test.
  • Calculez rmse en utilisant la fonction personnalisée rmse() fournie, en passant fc["y"] puis fc[model] comme arguments, dans cet ordre ; stockez le résultat dans une variable appelée r à l’intérieur de la boucle for.
  • Terminez l’évaluation en triant fc_performance par 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.____("____"))
Modifier et exécuter le code