Maksymalizacja wiarygodności – część 2
W części 1 obliczyłeś pojedynczą log-wiarygodność dla jednego mu. W części 2 użyjesz predefiniowanej funkcji compute_loglikelihood(), aby wyliczyć tablicę wartości log-wiarygodności – po jednej dla każdego elementu tablicy możliwych wartości mu.
Celem jest wskazanie tej jednej wartości mu, która daje maksymalną wartość w tablicy log-wiarygodności.
Na początek skorzystaj z wczytanych danych sample_distances, sample_mean, sample_stdev oraz funkcji pomocniczej compute_loglikelihood().
To ćwiczenie jest częścią kursu
Wprowadzenie do modelowania liniowego w Pythonie
Instrukcje do ćwiczenia
- Utwórz
mu_guesses, przyjmując wartości wyśrodkowane nasample_meani rozłożone zgodnie zsample_stdev. - Dla każdej wartości
mu_guesszmu_guessesużyjcompute_loglikelihood()dla wszystkichsample_distances, utrzymującsigmana stałym poziomie równymsample_stdev. - Znajdź maksymalną wartość w tablicy
loglikelihoodsi użyj jej indeksu, aby wskazaćbest_muspośródmu_guesses. - Wydrukuj
best_mui zwizualizuj wynik, tworząc wykresloglikelihoods.
Interaktywne ćwiczenie praktyczne
Spróbuj tego ćwiczenia, uzupełniając ten przykładowy kod.
# 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)