Aan de slagBegin gratis

De voorspellingsprestatie evalueren

In deze oefening evalueer en visualiseer je de prestaties van het forecastmodel dat je in de vorige oefening hebt gebouwd.

De test-gegevensset, ml_forecast-resultaten en plot_series zijn al geladen, samen met evaluatiefuncties (mape, rmse, coverage, hieronder getoond) en pandas als 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

Laten we eerst de prestatie van het model beoordelen en daarna de forecast visualiseren.

Deze oefening maakt deel uit van de cursus

Forecasting-pijplijnen ontwerpen voor productie

Bekijk cursus

Oefeninstructies

  • Maak fc door de gegevenssets ml_forecast en test te mergen.
  • Bereken rmse met de meegeleverde aangepaste functie rmse(). Geef in die volgorde fc["y"] en fc[model] door aan de twee argumenten; sla dit binnen de for-lus op als een variabele r.
  • Rond de evaluatie af door fc_performance oplopend te sorteren op rmse.

Interactieve oefening met praktijkervaring

Probeer deze oefening door deze voorbeeldcode aan te vullen.

# 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.____("____"))
Code bewerken en uitvoeren