ПочатиПочніть безкоштовно

Максимізація правдоподібності, частина 2

У частині 1 ви обчислили одне логарифмічне значення правдоподібності для одного mu. У цій частині 2 ви застосуєте заздалегідь визначену функцію compute_loglikelihood(), щоб обчислити масив значень логарифмічної правдоподібності — по одному для кожного елемента в масиві можливих значень mu.

Мета — визначити, яке одне припущення mu дає єдине максимальне значення в масиві loglikelihood.

Щоб розпочати, використайте попередньо завантажені дані sample_distances, sample_mean, sample_stdev і допоміжну функцію compute_loglikelihood().

Ця вправа є частиною курсу

Вступ до лінійного моделювання в Python

Переглянути курс

Інструкції до вправи

  • Сформуйте mu_guesses, взявши значення, центровані на sample_mean і розкинуті на sample_stdev.
  • Для кожного припущення mu_guess у mu_guesses використайте compute_loglikelihood() для всіх sample_distances, утримуючи sigma фіксованою на рівні sample_stdev.
  • Знайдіть максимальне значення в масиві loglikelihoods і за його індексом визначте best_mu з наших mu_guesses.
  • Виведіть best_mu і візуалізуйте його, побудувавши графік loglikelihoods.

Інтерактивна практична вправа

Спробуйте виконати цю вправу, доповнивши цей зразок коду.

# 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)
Редагувати та запускати код