テスト誤差の推定
ワークスペースにある posterior_predictive を使って、新しいデータでモデル性能を評価してみましょう。そのためにはテスト観測をループし、各観測について、この観測に対する予測分布と実際の真の値との差分として予測誤差を計算します。これによりモデル誤差の分布が得られ、可視化できます。
pymc3 と numpy はそれぞれ pm、np としてインポート済みです。テストデータ bikes_test もワークスペースに用意されています。さっそく始めましょう!
この演習はコースの一部です
Pythonで学ぶBayesianデータ分析
演習の手順
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()