Estimación del error de test
Ahora que tienes posterior_predictive (disponible en tu espacio de trabajo), puedes evaluar el rendimiento del modelo en datos nuevos. Para ello, tendrás que iterar sobre las observaciones de test y, para cada una, calcular el error de predicción como la diferencia entre la distribución predictiva de esa observación y su valor real. Esto te dará la distribución del error de tu modelo, que luego podrás visualizar.
Vas a necesitar pymc3 y numpy, que ya se han importado como pm y np, respectivamente. Los datos de test, bikes_test, también están disponibles en tu espacio de trabajo. ¡Manos a la obra!
Este ejercicio forma parte del curso
Análisis de datos bayesiano en Python
Instrucciones del ejercicio
- Inicializa
errorscomo una lista vacía. - Para cada fila en
bikes_test, calcula el error de predicción como las muestras predictivas para esa fila desdeposterior_predictivemenos el valor real único denum_bikesde la fila. - Reordena
errorsconvirtiéndolos en un array denumpyy aplicando el método.reshape()al resultado, y asigna el resultado final aerror_distribution. - Representa la distribución del error de test usando la función
plot_posterior()depymc3.
Ejercicio interactivo práctico
Prueba este ejercicio y completa el código de muestra.
# 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()