Kom igångKom igång gratis

Building a model leaderboard

Now that the data is in long format, you can score the model's results using the following helper functions:

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

def score(df):
    mape_score = mape(y = df["y"], yhat = df["forecast"])
    rmse_score = rmse(y = df["y"], yhat = df["forecast"])
    coverage_score = coverage(y = df["y"], lower = df["lower"], upper = df["upper"])
    cols = ["mape", "rmse", "coverage"]
    df = pd.Series([mape_score, rmse_score,  coverage_score], index=cols)
    return df

Den här övningen är en del av kursen

Designing Forecasting Pipelines for Production

Visa kurs

Interaktiv övning med praktiskt arbete

Testa den här övningen genom att slutföra den här exempelkoden.

# Create score_df
score_df = (bkt
            .groupby(["unique_id", "model_label", "model_name", "partition"])
            [["unique_id", "model_label", "model_name", "partition", "y", "forecast", "lower", "upper"]]
            .____(____)
            .reset_index()
)

print(score_df)
Redigera och kör kod