Zacznij terazZacznij za darmo

Szacowanie błędu na zbiorze testowym

Teraz, gdy masz dostępny obiekt posterior_predictive w swoim środowisku pracy, możesz ocenić wydajność modelu na nowych danych. W tym celu przejdziesz pętlą po obserwacjach testowych i dla każdej z nich obliczysz błąd predykcji jako różnicę między rozkładem predykcyjnym dla tej obserwacji a jej rzeczywistą wartością. Otrzymasz w ten sposób rozkład błędu modelu, który następnie zwizualizujesz.

Będziesz potrzebować bibliotek pymc3 i numpy, które zostały już zaimportowane jako pm i np. Dane testowe bikes_test są również dostępne w twoim środowisku. Do dzieła!

To ćwiczenie jest częścią kursu

Bayesowska analiza danych w Pythonie

Zobacz kurs

Instrukcje do ćwiczenia

  • Zainicjuj errors jako pustą listę.
  • Dla każdego wiersza w bikes_test oblicz błąd predykcji jako różnicę między próbkami predykcyjnymi dla tego wiersza z posterior_predictive a pojedynczą prawdziwą wartością num_bikes z tego wiersza.
  • Przekształć errors, konwertując je na tablicę numpy i stosując metodę .reshape() do wyniku, a następnie przypisz końcowy wynik do zmiennej error_distribution.
  • Zwizualizuj rozkład błędu testowego, używając funkcji plot_posterior() z biblioteki pymc3.

Interaktywne ćwiczenie praktyczne

Spróbuj tego ćwiczenia, uzupełniając ten przykładowy kod.

# 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()
Edytuj i uruchom kod