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
Instrukcje do ćwiczenia
- Zainicjuj
errorsjako pustą listę. - Dla każdego wiersza w
bikes_testoblicz błąd predykcji jako różnicę między próbkami predykcyjnymi dla tego wiersza zposterior_predictivea pojedynczą prawdziwą wartościąnum_bikesz tego wiersza. - Przekształć
errors, konwertując je na tablicęnumpyi stosując metodę.reshape()do wyniku, a następnie przypisz końcowy wynik do zmiennejerror_distribution. - Zwizualizuj rozkład błędu testowego, używając funkcji
plot_posterior()z bibliotekipymc3.
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()