始める無料で始める

テスト誤差の推定

ワークスペースにある posterior_predictive を使って、新しいデータでモデル性能を評価してみましょう。そのためにはテスト観測をループし、各観測について、この観測に対する予測分布と実際の真の値との差分として予測誤差を計算します。これによりモデル誤差の分布が得られ、可視化できます。

pymc3numpy はそれぞれ pmnp としてインポート済みです。テストデータ bikes_test もワークスペースに用意されています。さっそく始めましょう!

この演習はコースの一部です

Pythonで学ぶBayesianデータ分析

コースを見る

演習の手順

  • errors を空のリストとして初期化します。
  • bikes_test の各行について、この行に対する posterior_predictive からの予測サンプルから、その行の真の単一値 num_bikes を引いたものを予測誤差として計算します。
  • errorsnumpy 配列に変換し、その結果に .reshape() メソッドを適用して形を整え、最終結果を error_distribution に代入します。
  • pymc3plot_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()
コードを編集して実行