估計測試誤差
現在你已經有 posterior_predictive(在你的工作環境中可用),可以開始在新資料上評估模型效能。為此,你需要對測試資料逐筆迭代,並針對每一筆資料,將該觀測值的預測分佈與實際真值相減,得到預測誤差。如此一來,你就能得到模型誤差的分佈,接著即可視覺化。
你會用到 pymc3 與 numpy,已分別以 pm 與 np 匯入。測試資料 bikes_test 也已在你的工作環境中準備好。開始動手做吧!
本練習屬於課程
Bayesian Data Analysis in Python
練習說明
- 將
errors初始化為空清單。 - 對
bikes_test的每一列,計算此列的預測誤差:使用posterior_predictive取得該列的預測抽樣結果,減去此列中單一真實值num_bikes。 - 將
errors轉為numpy陣列並套用.reshape()方法調整形狀,並把最終結果指定給error_distribution。 - 使用
pymc3的plot_posterior()函式繪製測試誤差分佈。
動手互動練習
試著完成這個範例程式碼,體驗一下這個練習。
# Initialize errors
errors = ____
# Iterate over rows of bikes_test to compute error per row
for index, test_example in bikes_test.iterrows():
error = ____[____][:, ____] - ____[____]
errors.append(error)
# Reshape errors
error_distribution = ____(____).____()
# Plot the error distribution
____
plt.show()