Beräkna testfel
Nu när du har din posterior_predictive (tillgänglig i din arbetsyta) kan du utvärdera modellens prestanda på nya data. För att göra det behöver du loopa igenom testobservationerna och för var och en beräkna prediktionsfelet som skillnaden mellan den prediktiva fördelningen för observationen och det faktiska, sanna värdet. Det ger dig fördelningen av modellens fel, som du sedan kan visualisera.
Du behöver pymc3 och numpy, som redan har importerats som pm respektive np. Testdata, bikes_test, finns också tillgänglig i din arbetsyta. Då kör vi!
Den här övningen är en del av kursen
Bayesiansk dataanalys i Python
Övningsinstruktioner
- Initiera
errorssom en tom lista. - För varje rad i
bikes_testberäknar du prediktionsfelet som de prediktiva urvalen för den raden frånposterior_predictiveminus det enskilda sanna värdet avnum_bikesfrån raden. - Omforma
errorsgenom att konvertera dem till ennumpy-array och applicera metoden.reshape()på resultatet, och tilldela slutresultatet tillerror_distribution. - Plotta testfelfördelningen med hjälp av
pymc3:s funktionplot_posterior().
Interaktiv övning med praktiskt arbete
Testa den här övningen genom att slutföra den här exempelkoden.
# 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()