开始使用免费开始使用

最大化似然,第 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)
编辑并运行代码