Kom igångKom igång gratis

Maximera sannolikheten, del 2

I del 1 beräknade du ett enskilt log-sannolikhetsvärde för ett enskilt mu. I del 2 använder du den fördefinierade funktionen compute_loglikelihood() för att beräkna en array med log-sannolikhetsvärden – ett för varje element i en array med möjliga mu-värden.

Målet är sedan att avgöra vilket enskilt mu-gissning som ger det maximala värdet i log-sannolikhetsmatrisen.

Använd de förinlästa variablerna sample_distances, sample_mean, sample_stdev och hjälpfunktionen compute_loglikelihood() för att komma igång.

Den här övningen är en del av kursen

Introduktion till linjär modellering i Python

Visa kurs

Övningsinstruktioner

  • Konstruera mu_guesses genom att ta värden centrerade kring sample_mean och spridda med sample_stdev.
  • För varje gissningsvärde mu_guess i mu_guesses, använd compute_loglikelihood() för alla sample_distances med sigma fixerat till sample_stdev.
  • Hitta det maximala värdet i arrayen loglikelihoods och använd dess index för att hitta best_mu från mu_guesses.
  • Skriv ut best_mu och visualisera resultatet genom att plotta loglikelihoods.

Interaktiv övning med praktiskt arbete

Testa den här övningen genom att slutföra den här exempelkoden.

# Create an array of mu guesses, centered on sample_mean, spread out +/- by sample_stdev
low_guess = sample_mean - 2*sample_stdev
high_guess = sample_mean + 2*sample_stdev
mu_guesses = np.linspace(____, ____, 101)

# Compute the loglikelihood for each model created from each guess value
loglikelihoods = np.zeros(len(mu_guesses))
for n, mu_guess in enumerate(____):
    loglikelihoods[n] = compute_loglikelihood(____, mu=____, sigma=sample_stdev)

# Find the best guess by using logical indexing, the print and plot the result
best_mu = mu_guesses[loglikelihoods==np.max(____)]
print('Maximum loglikelihood found for best mu guess={}'.format(____))
fig = plot_loglikelihoods(mu_guesses, loglikelihoods)
Redigera och kör kod