Get startedGet started for free

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

This exercise is part of the course

Designing Forecasting Pipelines for Production

View Course

Hands-on interactive exercise

Have a go at this exercise by completing this sample code.

# 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)
Edit and Run Code