실습 · 연습문제 2개
베이지안 선형회귀의 사후분포와 예측분포 bayes-linreg-predictive
특징 행렬 와 관측 에 대해
인 모델을 생각한다. 두 함수를 완성한다.
-
posterior(Phi, y, alpha, sigma): 가중치 사후분포 의(m, S)를 반환한다. -
predictive(Phi_new, m, S, sigma): 새 입력들의 특징Phi_new에서 예측분포의 평균 과 분산 을 반환한다. 분산은 관측 잡음 과 가중치 불확실성 의 합이다.
| 인자 | shape |
|---|---|
Phi |
(N, D) |
y |
(N,) |
Phi_new |
(M, D) |
반환 m, S |
(D,), (D, D) |
| 반환 평균, 분산 | (M,), (M,) |
테스트는 다음을 확인한다.
- 사후평균이 정규화 강도 인 ridge 해와 같다.
- 데이터가 없으면() 사후분포가 사전분포와 같다.
- 예측 분산은 보다 작아지지 않고, 데이터에서 먼 입력에서 더 크다.
- 가중치를 사후분포에서 뽑아 만든 예측의 분산(Monte Carlo)과 일치한다.
힌트: 예측 분산을 입력마다 반복문으로 계산해도 되지만, np.einsum("md,de,me->m", Phi_new, S, Phi_new)나 np.sum((Phi_new @ S) * Phi_new, axis=1)로 한 번에 계산할 수 있다.
노출 시간이 다른 계수 데이터의 Gamma–Poisson 갱신 gamma-poisson-update
검출기로 계수를 여러 번 측정했다. 번째 측정은 노출 시간 [s] 동안 개를 셌고, 이다. 계수율 [1/s]에 사전분포 (shape , rate , 밀도 )를 둔다. 세 함수를 완성한다.
posterior(a0, b0, counts, exposure_s): 사후분포 의(a, b)를 반환한다.credible_interval(a, b, level=0.95): 사후분포의 등꼬리 신용구간(lo, hi). 양쪽 꼬리에 씩 남긴다.prob_rate_above(a, b, threshold): 사후확률 .
힌트: 우도를 의 함수로 정리하면 꼴이다. scipy.stats.gamma는 rate 대신 scale = 1/b를 받는다. 노출 시간이 긴 측정일수록 사후분포에 더 크게 기여해야 하며, 테스트가 이를 확인한다.