最大化似然,第 2 部分
在第 1 部分中,您针对单个 mu 计算了一个对数似然值。在本第 2 部分,您将调用预定义函数 compute_loglikelihood() 来计算一组对数似然值,即针对一组可能的 mu 值数组中的每个元素,各得到一个对数似然。
接下来要确定的是:哪一个 mu 猜测会使该对数似然数组取得单个的"最大"值。
请使用预加载的数据 sample_distances、sample_mean、sample_stdev,以及辅助函数 compute_loglikelihood() 开始完成本题。
本练习是课程的一部分
Python 线性建模入门
练习说明
- 通过围绕
sample_mean并按sample_stdev展开取值来构造mu_guesses。 - 对于
mu_guesses中的每个猜测值mu_guess,在固定sigma为sample_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)