facebook의 prophet에 관하여 1. 장단점

Nextop에서는 수요예측 알고리즘 중 하나로 facebook의 prophet을 사용하고 있다.

우선 prophet이란 뭘까?
간단하게 말해서Python과 R에서 구동가능한 시계열 예측 패키지라고 생각하면 될 것 같다.
필자는 파이썬환경에서만 사용했으므로 이후는 모두 파이썬을 기본으로 작성하겠다.

아래는 prophet에 대한 설치법과 간단한 실행/조정에 관한 공식문서인데, 
꽤 자세히 설명되어있으므로 사실상 대부분의 것들은 위의 사이트를 참고하는것으로 해결가능하다.

공식사이트가 잘 설명해놨는데 왜 이런 글을 작성하고 있느냐고? 
게다가 대부분의 코딩문제점들은 stackoverflow와 같이 훌륭한 사이트들에서 검색하면 바로 나올텐데? 
라고 물을수 있지만, 애초에 fb prophet은 그렇게까진 인지도가 높지는 않은 모양이다.
어느정도냐면 prophet으로 검색하면 원하는 정보는 얻을 수 없고 facebook을 반드시 앞에 붙여서 검색해야 제대로 찾아가는 수준인데, 그러면 쓸만한 정보들이라는게

  1. 공식사이트
  2. prophet paper(논문) - 언젠가 완전 번역하여 블로그에 올릴 예정이다. 지금은 내가 필요한 정도만 읽은 상태
  3. Prophet Github
정도가 끝이다.
그러니까 많은 사람들이 prophet이라는 훌륭한 API를 사용하다가 나처럼 고통받지 않기를 바라는 마음에서 작성한다고 생각해주면 감사하겠습니다. 그렇게까지 큰 뜻은 없지만 좋은게 좋은거라잖아요.

필자는 언젠가 https://rdrr.io/cran/prophet/api/ 를 발견하고 매우 반가웠는데, 
이 사이트는 비록 R에서 사용할 수 있는 prophet의 함수에 대한 내용이지만 저기있는 대부분의 함수들은 역시 파이썬 환경에서도 사용할 수 있다는 것을 알아두면 좋을것이다. 
함수에 대한 설명은 함수이름을 복사해 붙여놓은 수준이니까 이런게 있다는 것 정도로 참고하는것을 추천한다. 

물론 나의 정보수집능력이 모자라 그럴수도 있지만, 
한달 넘게 어딘가에는 스택오버플로의 역할을 해주는 곳이 있지 않을까 찾아본 결과 
그나마 조언을 구할 수 있는곳은 3. Github의 issue란  정도이다. (작성 당일 기준 57개가 open되어있으며 그중 9개는 버그)

당신이 우선 prophet을 사용하다 막히는 부분이 생긴다면, 1 -> 3 순서로 찾아보는게 끝이라는 것을 의미한다. (2는 prophet이 어떻게 작동하는지에 대한 내용으로, 대부분의 논문을 가진 코드들이 그러하듯 가장 처음 사용할 때  볼 필요가 있다. )


그렇다면 Nextop에서는 왜 prophet을 사용하는가? 인지도도 낮고 참고할만한 문서도 별로 없다는데?

Prophet의 장점은 단 하나라고 봐도 무방하다. 
그 하나가 너무 압도적인데, 쉽다는 것이다.

쉬움에는 정도의 차이가 있고 사람마다 다른 문제 아니냐고?
물론 그렇지만 시계열 분석을 하고자하는 의지가 있는 10명을 데려오면 
그중 9명은 prophet을 사용하다가 
'다른 알고리즘들의 난이도가 높긴 하겠지만 그렇게 어렵진 않겠지~' 
같은 오해하기 딱 좋은 정도의 쉬움이라고 평하고 싶다.

논문에서도 심심할때마다 '우리는 사용하기 쉬운게 최고 장점입니다!'라고 언급하는데, 여태까지 논문들이 정확도관련으로 약팔던것에 꾸준히 속아오던 나로써는 매우 감동이라 하지 않을 수 없다.

따라서 "facebook의 prophet에 관하여 n"에서 다루어질 내용들은 대부분 예상했겠지만,
공식 사이트와 깃헙 이슈란에서 다루어지지 않은 부분들에 대한 해결책들,
그리고 사용자들에게 쉽게 사용할 수 있도록 만들면서 대신 엄밀한 세부조정을 포기한 것에 대해 다룰 것이다.
장점에 대해 언급이 부족해보이지만, 이후에 지겹도록 많이 보게될테니 걱정하지 않아도 될 것 같다.

다음편은 2. 일별 단위가 아닌 경우에 대하여 로 이야기해보고자 한다.

댓글

가장 많이 본 글