Estimer l'erreur de test
Maintenant que vous avez votre posterior_predictive (disponible dans votre espace de travail), vous pouvez évaluer la performance du modèle sur de nouvelles données. Pour ce faire, vous devrez parcourir les observations de test et, pour chacune, calculer l'erreur de prédiction comme la différence entre la distribution prédictive pour cette observation et la valeur réelle observée. Vous obtiendrez ainsi la distribution de l'erreur de votre modèle, que vous pourrez ensuite visualiser.
Vous aurez besoin de pymc3 et de numpy, qui ont été importés pour vous sous les noms pm et np. Les données de test, bikes_test, sont aussi disponibles dans votre espace de travail. Allons-y!
Cette activité fait partie du cours
Analyse bayésienne des données en Python
Instructions de l’exercice
- Initialisez
errorscomme une liste vide. - Pour chaque ligne de
bikes_test, calculez l'erreur de prédiction comme les tirages prédictifs pour cette ligne à partir deposterior_predictivemoins la valeur réelle unique denum_bikesde la ligne. - Remodelez
errorsen les convertissant en un tableaunumpyet en appliquant la méthode.reshape()au résultat, puis affectez le résultat final àerror_distribution. - Tracez la distribution de l'erreur de test avec la fonction
plot_posterior()depymc3.
Exercice interactif pratique
Essayez cet exercice en complétant ce code d’exemple.
# 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()