본문 바로가기
IT 트랜드

페이스북 Prophet 쉽게 시작하기, 사용법과 Python 설치 방법 - 시계열 예측 기술 #1

by 마오양 2025. 3. 14.
반응형

미래를 미리 알수 있으면 얼마나 좋을까요? 오늘 급등주는 무엇일지, 이번 주 로또 번호는 몇번일지 등을 알 수 있다면 나도 부자가 될 수 있겠죠. 이런 것들은 그져 상상만 하는 것들이죠. 이러한 것들을 상상이라 치부하면서도 실제로는 우리는 데이터 예측이라는 것을 하고 있죠. 머신러닝 등에서 실제 사용하는 이론인 시계열 예측이라는 기술 말이죠. 오늘은 이러한 시계열 예측 이론 중 하나인 Prophet에 대해 정리해 보려 합니다.

페이스북 Prophet 쉽게 시작하기, 사용법과 Python 설치 방법
페이스북 Prophet 쉽게 시작하기, 사용법과 Python 설치 방법

 

반응형

 

  Prophet

Prophet는 페이스북(지금은 Meta(메타)입니다.)이 2017년에 개발한 오픈소스 시계열 예측 도구예요.

이미 이름에서부터 ‘예언자’라는 뜻을 가진 만큼, 시간에 따라 변하는 데이터를 보고 미래를 예측하는 데 사용됩니다. 페이스북은 원래 자사 플랫폼에서 사용자 활동이나 광고 효과를 예측하려고 Prophet를 만들었는데, 이후 전 세계 누구나 무료로 사용할 수 있게 공개했죠.

 

Prophet의 가장 큰 특징은 복잡한 수학이나 통계 지식이 없어도 쓸 수 있다는 점이에요. 기존의 시계열 분석은 전문가만 다룰 수 있을 정도로 어려웠지만, Prophet는 일반인이나 데이터에 관심 있는 학생이라면 누구나 쉽게 접근할 수 있도록 만들어졌어요.

 

 

  Prophet의 핵심 원리

Prophet가 미래를 예측하는 방식으로 데이터를 크게 세 가지로 나눠서 분석합니다.

  • 첫 번째는 추세(Trend)예요. 이는 데이터가 전체적으로 어떤 방향으로 가고 있는지를 보여줍니다. 예를 들어, 전자책 판매량이 매년 늘어나고 있다면 그게 바로 추세죠.
  • 두 번째는 계절성(Seasonality)으로, 일정 주기로 반복되는 패턴을 뜻합니다. 겨울이면 패딩 판매가 늘고 여름이면 선풍기가 잘 팔리는 식이죠.
  • 마지막으로 휴일 효과(Holiday Effect)는 특정 날짜에만 나타나는 변화를 잡아냅니다. 추석이나 크리스마스처럼 사람들이 평소와 다르게 행동하는 날을 분석하는 거예요.

Prophet에서는 이 세 가지를 계산해서 예측 모델을 만들어요. 사용자가 직접 복잡한 공식을 고민하지 않아도, Prophet가 알아서 데이터를 쪼개고 합쳐서 결과를 도출하죠.

 

 

  기존 시계열 모델과 Prophet의 차이점

Prophet 이전부터 사용되었던 시계열 예측 방법으로 ARIMA라는 모델이 있었는데, 이건 꽤 정확하지만 사용하기가 쉽지 않았어요. 데이터를 먼저 ‘정상성’이라는 조건에 맞춰야 하고, 계절 패턴을 따로 설정해야 하죠. 일반인에 다루기에 결코 쉽지 않았습니다.

 

결과적으로 Prophet은 이런 문제를 해결했어요.

  • 첫째, 자동화가 뛰어납니다. 추세나 계절성을 사용자가 직접 설정할 필요 없이 Prophet가 알아서 찾아줍니다.
  • 둘째, 비선형 추세를 다룰 수 있어요. 예를 들어, 갑자기 매출이 폭등하거나 폭락해도 유연하게 대처할 수 있죠.
  • 셋째, 사용이 간단합니다. 몇 줄의 코드만 쓰면 예측이 가능하니, 데이터 분석을 처음 배우는 사람도 쉽게 접근할 수 있어요.

이러한 장점으로 시계열 예측, 특히 단기 예측에서는 이 방법을 많이 사용하게 되었어요.

 

 

  Prophet 설치와 사용법

Prophet은 주로 Python이나 R이라는 프로그래밍 언어로 사용되는데, 설치도 간단합니다. Python을 예로 들면, 아래 명령어만 입력하면 됩니다.

pip install prophet

 

설치가 끝나면 간단한 코드로 예측을 시작할 수 있어요.

from prophet import Prophet
import pandas as pd

# 데이터 준비 (날짜와 값이 있는 파일)
data = pd.read_csv('판매량.csv')  # 날짜는 'ds', 값은 'y' 열로
model = Prophet()
model.fit(data)

# 30일 뒤를 예측
future = model.make_future_dataframe(periods=30)
forecast = model.predict(future)

물론 위 코드에서 사용한 '판매량.csv'와 같은 특정한 데이터는 사용자가 미리 갖고 있다고 가정합니다.

하여간, 위 코드 처럼 데이터를 읽고 간단하게 Prophet 객체를 생성해서 데이터를 "fit"한 다음 바로 예측합니다. 설명도 한줄로 끝낼 수 있을 정도군요. 

이렇게만 해도 Prophet가 데이터를 분석해서 30일 뒤의 예측 결과를 보여줍니다.

 

 

  제대로 사용하기 위한 주의점

너무나 당연하게도, Prophet이 편리하다고 해서 만능은 아니죠. 몇 가지 주의할 점이 있습니다.

  • 첫째, 데이터 품질이 중요해요. 과거 데이터에 오류가 있거나 빠진 부분이 많으면 예측도 엉터리가 됩니다.
  • 둘째, 갑작스러운 변화를 잘 반영하지 못할 때가 있어요. 예를 들어, 코로나처럼 예상치 못한 사건이 터지면 Prophet도 당황합니다. 셋째, 장기 예측은 신뢰도가 떨어질 수 있어요. 몇 달 정도는 괜찮지만, 몇 년 뒤를 예측하는 건 불확실성이 큽니다.

그래서 Prophet을 쓸 때는 데이터를 꼼꼼히 점검하고, 이상한 결과가 나오면 왜 그런지 확인이 필요합니다.

반응형