Aan de slagGa gratis aan de slag

Testfout inschatten

Nu je posterior_predictive (beschikbaar in je workspace) klaarstaat, kun je de modelprestaties op nieuwe data evalueren. Hiervoor loop je over de testobservaties en bereken je voor elke observatie de voorspellingsfout als het verschil tussen de predictieve verdeling voor deze observatie en de daadwerkelijke, echte waarde. Dit levert de verdeling van de fout van je model op, die je daarna kunt visualiseren.

Je hebt pymc3 en numpy nodig, die al voor je zijn geïmporteerd als respectievelijk pm en np. De testdata, bikes_test, is ook beschikbaar in je workspace. Aan de slag!

Deze oefening maakt deel uit van de cursus

Bayesian Data Analysis in Python

Cursus bekijken

Oefeninstructies

  • Initialiseer errors als een lege lijst.
  • Bereken voor elke rij in bikes_test de voorspellingsfout als de predictieve trekkingen voor deze rij uit posterior_predictive min de enkele echte waarde van num_bikes uit de rij.
  • Vorm errors om door ze naar een numpy-array te converteren en vervolgens de methode .reshape() toe te passen op het resultaat, en wijs de uiteindelijke uitkomst toe aan error_distribution.
  • Plot de testfoutverdeling met de functie plot_posterior() van pymc3.

Praktische interactieve oefening

Probeer deze oefening eens door deze voorbeeldcode in te vullen.

# 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 bewerken en uitvoeren