실습 · 연습문제 2개
이분산 가우시안의 음의 로그우도 gaussian-nll
예측분포가 일 때, 관측값 하나의 음의 로그우도(NLL)는
이다. 이분산 회귀에서는 샘플마다 와 가 다르다.
gaussian_nll(y, mu, sigma): 배열y와,y와 같은 shape이거나 스칼라인mu,sigma에 대한 평균 NLL. 입력은 리스트로 올 수도 있으니np.asarray로 바꾸고, NumPy 브로드캐스팅으로 계산한다.sigma에 0 이하의 값이 있으면ValueError를 낸다.best_sigma(residuals, grid): 모든 샘플이 같은 를 쓴다고 할 때, 후보grid중 평균 NLL을 가장 작게 만드는
테스트는 best_sigma가 잔차의 제곱평균제곱근(RMS)에 가까운지 확인한다. 직접 미분해 보면 왜 그런지 알 수 있다.
Pinball loss로 분위수 찾기 pinball-loss
분위수 회귀의 손실인 pinball loss는 잔차 에 대해
이다. 두 함수를 완성한다.
pinball_loss(y, q, tau): 관측값 배열y와 예측값q(스칼라 또는 같은 shape의 배열)에 대한 평균 pinball lossbest_constant(y, tau, grid): 후보값 배열grid중에서pinball_loss(y, q, tau)를 가장 작게 만드는 상수q
테스트는 best_constant가 표본의 tau 분위수에 가까운지 확인한다. 일 때 pinball loss는 평균 절댓값 오차의 절반이라는 점도 확인한다.