딥러닝

딥러닝(20)prophet 라이브러리를 이용한 타임 시리즈 데이터 예측방법

개발연습자1 2023. 1. 3. 18:04

prophet 라이브러리는 페이스북에서 개발한 라이브러리로써 타임 시리즈 데이터를 자동으로 인식해 그래프를 그려주고 그 데이터의 1년후 10년후 데이터를 예측한다.

 

prophet을 써보자

 

우선 라이브러리를 호출한다.

# import libraries 
import pandas as pd  
import numpy as np 
import matplotlib.pyplot as plt 
import random
import seaborn as sns
from prophet import Prophet

 

데이터 읽는 방법은 저번시간에도 진행하였고 학습할 데이터를 직접구한것이라 여러분도 타임 시리즈 데이터를 구해서 데이터를 불러보자 

 

필자는 미국의 아보카도 리테일 데이터를 썻다. (2018년도 weekly 데이터)

 

데이터를 불러왔으면 prophet에 맞는 데이터로 가공해야 한다.

 

날짜를 순서대로 정리한다.

# 날짜를 정렬한다.

df.sort_values('Date',inplace=True)

 

프로펫 분석에는 크게 2가지 컬럼이 쓰이므로 컬럼 2개만 가져온다.

#컬럼 2개만 가져오기
avocado_prophet_df = df[['Date','AveragePrice']]

 

프로펫분석을 위해 가져온 두컬럼의 컬럼명을 바꾼다.

avocado_prophet_df.columns = ['ds','y']

 

프로펫 변수를 만들고 데이터를 프로펫에 학습시킨다.

 

#1. 라이브러리로 변수로 만들고,
prophet = Prophet()

#2. 데이터로, 학습시킨다.
prophet.fit(avocado_prophet_df)

 

데이터를 학습한 다음에는 미래 기간을 임의로 설정하여 값을 예측 할 수 있다. 임의로 설정시 프로펫은 기간이 인덱스인 비어있는데이터를 만든다. 


#3. 예측하고자 하는 기간을 정해서, 비어 있는 데이터 프레임을 만든다! 
future=prophet.make_future_dataframe(periods=365,freq = 'D')

#4. 미래 날짜까지 만들어져 있으니,
# 위에 future 데이터프레임을 이용해서, 예측할 수 있다.
forecast=prophet.predict(future)

 

forecast값을 프로펫 그래프로 시각화한다.

prophet.plot(forecast)
plt.savefig('chart1.jpg')

 

그럼 이렇게 그래프로 미래값을 예측하여 표현한다. 2018년 02월 이전 데이터는 다 실제값이고 02월 이후에는 예측데이터들이다. 

 

경향도 예측 할 수 있다.

prophet.plot_components(forecast)
plt.savefig('chart2.jpg')

 

경향 예측 버그로 인하여 같은 값이 2번 반복되기 때문에 하나의 이미지를 백업한다는 느낌으로 저장해준다.

반응형