Оцінювання помилки на тесті
Тепер, коли у вас є posterior_predictive (він доступний у вашому робочому середовищі), ви можете оцінити роботу моделі на нових даних. Для цього потрібно пройтися циклом по тестових спостереженнях і для кожного з них обчислити помилку прогнозу як різницю між прогностичним розподілом для цього спостереження та фактичним, істинним значенням. Це дасть вам розподіл помилки вашої моделі, який потім можна візуалізувати.
Вам знадобляться pymc3 і numpy, які вже імпортовано як pm і np відповідно. Тестові дані bikes_test також доступні у вашому середовищі. Почнімо!
Ця вправа є частиною курсу
Баєсівський аналіз даних у Python
Інструкції до вправи
- Ініціалізуйте
errorsяк порожній список. - Для кожного рядка в
bikes_testобчисліть помилку прогнозу як прогностичні вибірки для цього рядка зposterior_predictiveмінус єдине істинне значенняnum_bikesз рядка. - Змініть форму
errors, перетворивши їх на масивnumpyі застосувавши метод.reshape()до результату, та присвойте фінальний результат зміннійerror_distribution. - Побудуйте розподіл тестової помилки за допомогою функції
plot_posterior()зpymc3.
Інтерактивна практична вправа
Спробуйте виконати цю вправу, доповнивши цей зразок коду.
# 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()