Bắt đầu ngayBắt đầu miễn phí

Đánh giá hiệu năng dự báo

Trong bài tập này, bạn sẽ đánh giá và trực quan hóa hiệu năng của mô hình dự báo mà bạn đã xây dựng ở bài trước.

Tập dữ liệu test, kết quả ml_forecast, và plot_series đã được nạp sẵn, cùng với các hàm đánh giá (mape, rmse, coverage, như bên dưới) và pandas dưới bí danh 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

Hãy đánh giá hiệu năng của mô hình trước, sau đó trực quan hóa dự báo.

Bài tập này là một phần của khóa học

Thiết kế Pipeline Dự báo cho Môi trường Production

Xem khóa học

Hướng dẫn bài tập

  • Tạo fc bằng cách trộn (merge) hai tập dữ liệu ml_forecasttest.
  • Tính rmse bằng hàm tùy chỉnh rmse() đã cho, truyền fc["y"]fc[model] theo đúng thứ tự vào hai tham số; lưu vào biến r bên trong vòng lặp for.
  • Hoàn tất bước đánh giá bằng cách sắp xếp fc_performance theo rmse tăng dần.

Bài tập tương tác thực hành trực tiếp

Hãy thử làm bài tập này bằng cách hoàn thành đoạn mã mẫu này.

# 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.____("____"))
Chỉnh sửa và Chạy Mã