LoslegenKostenlos starten

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

<Kurs>Bayesianische Datenanalyse in Python</Kurs>
Kurs ansehen

Übungsanweisungen

  • Initialisiere errors als leere Liste.
  • Berechne für jede Zeile in bikes_test den Vorhersagefehler als die Vorhersageziehungen für diese Zeile aus posterior_predictive minus dem einzelnen wahren Wert von num_bikes aus der Zeile.
  • Forme errors um, indem du sie in ein numpy-Array konvertierst und auf das Ergebnis die Methode .reshape() anwendest, und weise das Endergebnis error_distribution zu.
  • Plotte die Testfehlerverteilung mit der Funktion plot_posterior() von pymc3.

Interaktive praktische Übung

Versuche dich an dieser Übung, indem du diesen Beispielcode vervollständigst.

# 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()
Code bearbeiten und ausführen