LoslegenKostenlos loslegen

Prognoseleistung bewerten

In dieser Übung bewertest und visualisierst du die Leistung des Prognosemodells, das du in der vorherigen Übung aufgebaut hast.

Die Datensätze test, die Ergebnisse ml_forecast und plot_series sind bereits geladen, ebenso die Evaluationsfunktionen (mape, rmse, coverage, siehe unten) und 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

Bewerten wir zuerst die Modellleistung und visualisieren anschließend die Prognose.

Diese Übung ist Teil des Kurses

Forecasting-Pipelines für die Produktion entwerfen

Kurs anzeigen

Anleitung zur Übung

  • Erstelle fc, indem du die Datensätze ml_forecast und test zusammenfügst.
  • Berechne rmse mit der bereitgestellten benutzerdefinierten Funktion rmse(), indem du fc["y"] und fc[model] in genau dieser Reihenfolge übergibst; speichere das Ergebnis als Variable r innerhalb der for-Schleife.
  • Schließe die Auswertung ab, indem du fc_performance aufsteigend nach rmse sortierst.

Interaktive Übung

Vervollständige den Beispielcode, um diese Übung erfolgreich abzuschließen.

# 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 bearbeiten und ausführen