MulaiMulai sekarang secara gratis

Mengevaluasi kinerja peramalan

Pada latihan ini, Anda akan mengevaluasi dan memvisualisasikan kinerja model peramalan yang Anda bangun pada latihan sebelumnya.

Himpunan data test, hasil ml_forecast, dan plot_series sudah dimuat sebelumnya, bersama dengan fungsi evaluasi (mape, rmse, coverage, ditampilkan di bawah) serta pandas sebagai 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

Mari kita menilai performa model terlebih dahulu lalu memvisualisasikan hasil peramalannya.

Latihan ini adalah bagian dari kursus

Merancang Pipeline Peramalan untuk Produksi

Lihat Kursus

Petunjuk latihan

  • Buat fc dengan menggabungkan himpunan data ml_forecast dan test.
  • Hitung rmse menggunakan fungsi kustom rmse() yang disediakan, dengan memberikan fc["y"] dan fc[model] ke dua argumen tersebut secara berurutan; simpan sebagai variabel bernama r di dalam for loop.
  • Selesaikan evaluasi dengan mengurutkan fc_performance menurut rmse secara menaik.

Latihan interaktif praktis

Cobalah latihan ini dengan menyelesaikan kode contoh berikut.

# 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.____("____"))
Edit dan Jalankan Kode