Bắt đầu ngayBắt đầu miễn phí

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

Xem khóa học

Hướng dẫn bài tập

  • Tạo mu_guesses bằng cách lấy các giá trị được canh giữa tại sample_mean và trải rộng theo sample_stdev.
  • Với mỗi giá trị dự đoán mu_guess trong mu_guesses, dùng compute_loglikelihood() cho toàn bộ sample_distances, giữ sigma cố định ở sample_stdev.
  • Tìm giá trị lớn nhất trong mảng loglikelihoods và dùng chỉ số của nó để tìm best_mu từ mu_guesses.
  • In best_mu và 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)
Chỉnh sửa và Chạy Mã