Tối đa hóa khả năng xảy ra (Likelihood), Phần 2
Ở Phần 1, bạn đã tính một log-likelihood cho một giá trị mu. Trong Phần 2 này, bạn sẽ dùng hàm dựng sẵn compute_loglikelihood() để tính một mảng các giá trị log-likelihood, mỗi giá trị ứng với một phần tử trong mảng các giá trị mu có thể có.
Mục tiêu là xác định giá trị mu duy nhất nào tạo ra giá trị lớn nhất trong mảng loglikelihood.
Để bắt đầu, hãy dùng dữ liệu đã nạp sẵn sample_distances, sample_mean, sample_stdev và hàm trợ giúp compute_loglikelihood().
Bài tập này là một phần của khóa học
Nhập môn Mô hình tuyến tính với Python
Hướng dẫn bài tập
- Tạo
mu_guessesbằng cách lấy các giá trị được canh giữa tạisample_meanvà trải rộng theosample_stdev. - Với mỗi giá trị dự đoán
mu_guesstrongmu_guesses, dùngcompute_loglikelihood()cho toàn bộsample_distances, giữsigmacố định ởsample_stdev. - Tìm giá trị lớn nhất trong mảng
loglikelihoodsvà dùng chỉ số của nó để tìmbest_mutừmu_guesses. - In
best_muvà trực quan hóa nó bằng cách vẽ đồ thịloglikelihoods.
Bài tập tương tác thực hành trực tiếp
Hãy thử làm bài tập này bằng cách hoàn thành đoạn mã mẫu này.
# 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)