Facebook - Prophet

Prophet?

  • Facebook에서 만든 시계열 데이터의 예측을 위한 패키지
  • 전통적 시계열 모델의 경우 데이터가 정상성(Stationary)을 만족해야지 사용할 수 있으나, Prophet은 이런 것을 고민할 필요가 없다.
  • R과 Python에서 모두 작동을 하기 때문에 언어에 대한 제한이 없어서 이후에 활용하기좋다
  • 관련된 논문은 Forecasting at scale으로 내용을 대략 훑어보니 Prophet은 GAM모형을 활용한 것으로 트랜드 + 공휴일 + 주기(주,년)의 분포함수를 가산결합하여 예측하는 구조이다.

쓰면서 경험한 부분

  • 공휴일 등의 Domain Knowledge에 기반한 데이터를 내장하고 있어서 Parameter 조작을 통해 반영하기 쉽다.→ 하지만 한국의 공휴일은 없어서 별도로 데이터를 작업해서 넣어주어야 한다.
  • Checkpoint를 자동으로 찾아서 인식후 Fitting하기 때문에 트랜드가 빠르게 변하는 산업에서의 수요예측에 용이하다. → Scale Up에 익숙한 스타트업에게는 꽤 용이한 기능이라고 볼 수 있다.
  • GAM을 기반으로 한 덕분에비 선형회귀에서는 자칫하면 놓칠 수 있는 비선형관계를 포함해서 적합을 할 수는 있지만, GAM이기 때문에 단순 가산으로 모델간 결합을 하다보니 상호작용?에 대해 놓칠 수 있는 부분이 있다.
  • 스타트업에서 여러번 대형 프로모션을 일으켜서 기존 수치와의 갭이 큰 변동이 발생했을 때 예측하기가 참 난감하다. 이런 경우는 데이터가 갖는 주기나 트랜드 패턴을 흔들어놓으니 예측 자체의 정확성이 크게 하락할 수 있다. → 사실 이런 경우는 다른 모델 역시 예측력이 크게 하락하니 Prophet만의 문제라고 보기는 어렵다.