估计测试误差
现在您已经得到了 posterior_predictive(已在您的工作空间中可用),可以在新数据上评估模型表现了。为此,您需要遍历测试集中的观测,对每个观测,将其预测分布与真实值之差作为预测误差。这样就能得到模型误差的分布,随后即可进行可视化。
您将用到 pymc3 和 numpy,它们已分别以 pm 和 np 导入。测试数据 bikes_test 也已在您的工作空间中准备好。我们开始吧!
本练习是课程的一部分
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()