IniziaInizia gratis

Valutare le prestazioni del forecast

In questo esercizio valuterai e visualizzerai le prestazioni del modello di forecast che hai costruito nell’esercizio precedente.

I risultati ml_forecast, il dataset test e plot_series sono già caricati, insieme alle funzioni di valutazione (mape, rmse, coverage, riportate sotto) e a pandas come 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

Per prima cosa, valutiamo le prestazioni del modello e poi visualizziamo il forecast.

Questo esercizio fa parte del corso

Progettare pipeline di forecasting per la produzione

Visualizza il corso

Istruzioni dell'esercizio

  • Crea fc unendo i dataset ml_forecast e test.
  • Calcola l’rmse usando la funzione personalizzata rmse() fornita, passando fc["y"] e fc[model] ai due argomenti in quell’ordine; salvalo in una variabile chiamata r all’interno del ciclo for.
  • Completa la valutazione ordinando fc_performance per rmse in ordine crescente.

Esercizio pratico interattivo

Prova a risolvere questo esercizio completando il codice di esempio.

# 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.____("____"))
Modifica ed esegui il codice