НачатьНачать бесплатно

Оценка ошибки на тестовых данных

Теперь, когда у вас есть 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()
Редактировать и запускать код