開始使用免費開始

最大化概似,第 2 部分

在第 1 部分中,你為單一的 mu 計算了一個對數概似值。這個第 2 部分中,你會套用預先定義的函式 compute_loglikelihood(),為一個可能 mu 值的陣列中的每個元素,各自計算一個對數概似值,因此得到一個對數概似值的陣列

接下來的目標是找出哪一個 mu 猜測,會對應到整個對數概似陣列中的最大值。

請使用已載入的資料 sample_distancessample_meansample_stdev,以及輔助函式 compute_loglikelihood() 開始進行。

本練習屬於課程

Python 線性建模入門

檢視課程

練習說明

  • sample_mean 為中心,並以 sample_stdev 為擴散範圍,建立 mu_guesses
  • 對於 mu_guesses 中的每個猜測值 mu_guess,在固定 sigmasample_stdev 的情況下,對所有 sample_distances 使用 compute_loglikelihood()
  • 找出 loglikelihoods 陣列中的最大值,並用該值的索引從 mu_guesses 取出 best_mu
  • 列印 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)
編輯並執行程式碼