Testfehler schätzen
Jetzt, da dir posterior_predictive (in deinem Arbeitsbereich verfügbar) vorliegt, kannst du die Modellleistung auf neuen Daten auswerten. Dazu musst du über die Testbeobachtungen iterieren und für jede den Vorhersagefehler als Differenz zwischen der Vorhersageverteilung für diese Beobachtung und dem tatsächlichen, wahren Wert berechnen. So erhältst du die Verteilung des Modellfehlers, die du anschließend visualisieren kannst.
Du brauchst pymc3 und numpy, die bereits als pm bzw. np importiert sind. Die Testdaten bikes_test stehen dir ebenfalls im Arbeitsbereich zur Verfügung. Los geht’s!
Diese Übung ist Teil des Kurses
Bayesianische Datenanalyse in Python
Anleitung zur Übung
- Initialisiere
errorsals leere Liste. - Berechne für jede Zeile in
bikes_testden Vorhersagefehler als die Vorhersageziehungen für diese Zeile ausposterior_predictiveminus dem einzelnen wahren Wert vonnum_bikesaus der Zeile. - Forme
errorsum, indem du sie in einnumpy-Array konvertierst und auf das Ergebnis die Methode.reshape()anwendest, und weise das Endergebniserror_distributionzu. - Plotte die Testfehlerverteilung mit der Funktion
plot_posterior()vonpymc3.
Interaktive Übung
Vervollständige den Beispielcode, um diese Übung erfolgreich abzuschließen.
# 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()