AI/Prophet

[Prophet] Prophet Tutorial #6 - Uncertainty Intervals

zamezzz 2018. 7. 9. 23:09

 [Ai] Prophet Tutorial #6 - Uncertainty Intervals



오늘은 Prophet 튜토리얼의 여섯 번째 포스팅입니다.


오늘의 주제는 Uncertainty Intervals 입니다.

https://facebook.github.io/prophet/docs/uncertainty_intervals.html


Uncertainty Intervals란 불확실성의 범위라고 보시면 됩니다.


그래서 앞서 다른 예제에서 살펴본 예측 값에는 yhat_lower, yhat_upper라는 값이


있었죠. 이 값은 yhat의 가장 낮은 값과 가장높은 값을 뜻했습니다.


yhat은 예측 값의 범위라고 이해하면 될 것 같습니다.



Uncertainty in the trend


기본적으로 Prophet은 이 yhat의 값으로 예측 값의 불확실성 범위를 표현합니다.


이 기본 값은 80%, 즉 예측 정확도가 80%라고 보시면 됩니다.


정확도를 더 높이거나 낮추고 싶다면 아래 코드로 조정이 가능합니다.


forcast = Prophet(interval_width=0.95).fit(df).predict(future)


위 코드를 통해 Uncertainty Intervals를 95%로 조정할 수 있습니다.



 Uncertainty in seasonality


기본적으로 Prophet은 전체 trend에 대해서 정확도를 제어할 수 있는데요.


Seasonality에도 추가적으로 제어할 수 있습니다. 이를 위해서는 Bayesian Sampling


사용해야 한다고 합니다. 정확한 원리 및 개념은 어렵지만 실제 파이썬에서는 아래의


매우 간단한 코드로 설정이 가능합니다.


mcmc_samples라는 매개변수를 사용합니다. (디폴트는 0입니다)


이 값을 300으로 주면 데이터의 최초 300일에 대해서 적용한다는 것입니다.


m = Prophet(mcmc_samples=300)

forecast = m.fit(df).predict(future)


fig = m.plot_components(forecast)


적용 결과는 다음과 같습니다.


위 그림처럼 전체 트렌드에도 불확실성 범위 즉 Uncertainty Intervals가 표기됩니다.




Uncertainty Intervals 피쳐 또한 결과에는 큰 영향을 주지 않는 것 같습니다.


그렇기에 블로그 방문자수 예측 데이터에는 직접 사용하지 않았습니다.


바로 적용해보고 싶은 피쳐는 바로 적용하고, 좀 더 생각이 필요하다면 일단 정리 후


추후 적용해보도록 하겠습니다. 


그럼 Uncertainty Intervals 포스팅을 마치겠습니다. 감사합니다

반응형