[AI Dict] Prophet 시계열데이터 예측

fragrance_0·2024년 1월 3일
0

AI Dict.

목록 보기
7/9

💡 Prophet

  • Prophet은 비선형 추세를 연간, 주간 및 일일 계절성휴일 효과와 결합하여 시계열 데이터를 예측하는 Procedure이다.

  • Prophet은 강한 계절성 효과를 가진 시계열 데이터와 여러 시즌의 과거 데이터를 가장 잘 처리한다.

  • Prophet은 데이터의 누락 및 추세의 이동에 강건(Robust)하며, 일반적으로 이상치를 잘 처리한다.


📌 Prophet의 주요 특징

1. 정확하고 빠름

페이스북에서 다양한 응용 분야에서 신뢰할 수 있는 예측을 생성하여 계획 및 목표 설정에 사용된다. 우리는 대부분의 경우에 다른 접근 방식보다 Prophet이 더 우수한 성능을 보여주었다. 모델은 Stan을 사용하여 적합시키므로 몇 초 안에 예측 결과를 얻을 수 있다.

2. 완전 자동화

불규칙한 데이터에서도 별도의 처리 없이 합리적인 예측을 제공한다. Prophet은 이상치, 누락된 데이터 및 시계열의 급격한 변화에도 강건하게 작동한다.


3. 사용자 튜닝 기능

Prophet은 사용자가 예측을 조정하고 수정할 수 있는 다양한 기능이 있다. 도메인 지식을 추가하여 사용자가 이해할 수 있는 매개변수를 사용하여 예측을 개선할 수 있다.


4. R 또는 Python에서 사용 가능

Prophet 절차는 R과 Python에서 구현되고, Stan 코드를 제공한다. 편한 언어를 사용하여 예측을 수행할 수 있다.



📌 애플의 주가 데이터로 실습해보기

(1) 데이터 불러오기

df = pd.read_csv('/Users/lwh/Desktop/prophet/AAPL.csv')
df.head()

데이터 출처: https://www.kaggle.com/datasets/varpit94/apple-stock-data-updated-till-22jun2021?resource=download


(2) Prophet에 넣을 수 있게 데이터 전처리

df = df.reset_index()
df['ds'] = df['Date']
df['y'] = df['Close']
data = df[['ds','y']]
data = data[-1000:]

data.head()


(3) Prophet 모델 피팅

prophet_m = Prophet().fit(data)

(4) 미래 데이터 예측

future = prophet_m.make_future_dataframe(periods=365) # period에 할당된 날짜만큼 미래 날짜 만들기

# 미래 가격 예측하기
forecast = prophet_m.predict(future)
forecast[['ds', 'yhat', 'yhat_lower', 'yhat_upper']].tail()
future.tail()


(5) 시각화

prophet_m.plot(forecast)

→ Prophet은 이전 데이터를 기반으로 애플의 주가가 상승할 것으로 에측하였다.


참고문헌 | Prophet

[출처 | 딥다이브 Code.zip 매거진]

profile
@fragrance_0의 개발로그

0개의 댓글