Stima dell'errore sul test
Ora che hai il tuo posterior_predictive (disponibile nel tuo workspace), puoi valutare le prestazioni del modello su nuovi dati. Per farlo, dovrai iterare sulle osservazioni di test e, per ciascuna, calcolare l'errore di previsione come differenza tra la distribuzione predittiva per questa osservazione e il valore reale osservato. Questo ti darà la distribuzione dell'errore del tuo modello, che potrai poi visualizzare.
Ti serviranno pymc3 e numpy, che sono già stati importati come pm e np. Anche i dati di test, bikes_test, sono disponibili nel tuo workspace. Mettiamoci al lavoro!
Questo esercizio fa parte del corso
Analisi dei dati bayesiana in Python
Istruzioni dell'esercizio
- Inizializza
errorscome lista vuota. - Per ogni riga in
bikes_test, calcola l'errore di previsione come le estrazioni predittive per questa riga daposterior_predictivemeno il singolo valore reale dinum_bikesdalla riga. - Rimodella
errorsconvertendoli in un arraynumpye applicando il metodo.reshape()al risultato; assegna il risultato finale aerror_distribution. - Traccia la distribuzione dell'errore sul test usando la funzione
plot_posterior()dipymc3.
Esercizio pratico interattivo
Prova a risolvere questo esercizio completando il codice di esempio.
# 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()