최대 가능도, 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)