테스트 오류 추정하기
이제 작업 공간에 있는 posterior_predictive를 활용해 새 데이터에서 모델 성능을 평가해 볼까요. 이를 위해 테스트 관측치를 순회하면서, 각 관측치에 대해 이 관측치의 예측 분포와 실제 참값의 차이를 예측 오차로 계산하세요. 이렇게 하면 모델 오차의 분포를 얻을 수 있고, 이를 시각화할 수 있습니다.
pymc3와 numpy는 각각 pm과 np로 임포트되어 있습니다. 테스트 데이터 bikes_test도 작업 공간에 준비되어 있어요. 시작해 봅시다!
이 연습은 강의의 일부입니다
Python으로 배우는 Bayesian 데이터 분석
연습 안내
errors를 빈 리스트로 초기화하세요.bikes_test의 각 행에 대해,posterior_predictive에서 이 행에 해당하는 예측 샘플에서 그 행의 실제num_bikes단일 값(스칼라)을 뺀 값으로 예측 오차를 계산하세요.errors를numpy배열로 변환한 다음 결과에.reshape()메서드를 적용해 모양을 변경하고, 최종 결과를error_distribution에 할당하세요.pymc3의plot_posterior()함수를 사용해 테스트 오차 분포를 그리세요.
실습형 인터랙티브 연습
이 예제를 이 샘플 코드를 완성하여 풀어보세요.
# Initialize errors
errors = ____
# Iterate over rows of bikes_test to compute error per row
for index, test_example in bikes_test.iterrows():
error = ____[____][:, ____] - ____[____]
errors.append(error)
# Reshape errors
error_distribution = ____(____).____()
# Plot the error distribution
____
plt.show()