import numpy as np
import pandas as pd
df = pd.read_csv("orders.csv", parse_dates=["week"]).sort_values("week")
train, test = df.iloc[:-12], df.iloc[-12:]
naive = np.repeat(train["qty"].iloc[-1], 12) # 用最後一週當預測
ma = np.repeat(train["qty"].iloc[-8:].mean(), 12) # 用最近 8 週平均
def wape(actual, pred):
return np.abs(actual - pred).sum() / actual.sum()
print("最後一週", round(wape(test["qty"].values, naive), 3))
print("8 週平均", round(wape(test["qty"].values, ma), 3))