Estimando o erro de teste
Agora que você tem o posterior_predictive (disponível no seu ambiente de trabalho), pode avaliar o desempenho do modelo em novos dados. Para isso, você vai precisar iterar sobre as observações de teste e, para cada uma delas, calcular o erro de previsão como a diferença entre a distribuição preditiva para essa observação e o valor real. Isso vai gerar a distribuição do erro do seu modelo, que você poderá visualizar.
Você vai precisar de pymc3 e numpy, que já foram importados como pm e np, respectivamente. Os dados de teste, bikes_test, também estão disponíveis no seu ambiente. Vamos lá!
Este exercício faz parte do curso
Análise de Dados Bayesiana em Python
Instruções do exercício
- Inicialize
errorscomo uma lista vazia. - Para cada linha em
bikes_test, calcule o erro de previsão como as amostras preditivas para essa linha a partir deposterior_predictivemenos o único valor real denum_bikesda linha. - Redimensione
errorsconvertendo-os para um array donumpye aplicando o método.reshape()ao resultado, e atribua o resultado final aerror_distribution. - Plote a distribuição do erro de teste usando a função
plot_posterior()dopymc3.
Exercício interativo prático
Experimente este exercício completando este código de exemplo.
# 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()