본문 바로가기
Python/MachineLearning

Time Series Data forecasting Prophet

by 하니__ 2024. 4. 19.
install : pip install prophet

 

페이스북(현 메타)에서 만든 라이브러리

 

주로 일별, 월별, 연별 등 시간과 관련하여 예측 하는것으로 많이 쓰인다

 

 

from prophet import Prophet
avocado_prophet_df = df[['Date', 'AveragePrice']]
avocado_prophet_df

 

 

 

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

 

ds 컬럼은 일반적으로 날짜나 시간 정보(date 또는 timestamp)를 의미하고

y 컬럼은 종속 변수(target 또는 label)를 나타내는 경우가 많다

 

그 이전에 프로펫(Prophet) 라이브러리와 같은 타임시리즈 예측 라이브러리에서

일반적으로 사용되는 명명 규칙에 맞추기 위해 수행된다

 
 
prophet = Prophet()

 

라이브러리를 변수로 바꾼뒤

prophet.fit(avocado_prophet_df)

 

데이터 학습을 시키자

 

 

future = prophet.make_future_dataframe( periods = 365, freq = 'D' )

 

make_future_dataframe( )은 향후 예측을 위해 사용할 빈 DataFrame을 생성하는 코드이며

periods = 365 는 현재 있는 데이터 이후로의 365 기간을 설정해준다

freq='D'는 위에서 생성될 DataFrame의 기간을 'D' Day 일로 설정 하여 365 = 365일 = 1년으로 설정해준다

필요에 따라 주별 월별 연별 시간별 공휴일은 제외 하는등의 기간설정 또한 가능하다

 

future

 

 

 

기존에 없던 19년 3월까지의 ds콜럼데이터 생성된다

 

 

예측을 해보자
forecast = prophet.predict(future)
forecast.tail(1)

 

 

prophet으로 예측한 미래값은 forecast로 저장하며

yhat 는 예측값을 의미

trend 는 데이터의 장기적인 경향 즉, 추세를 알 수 있다

lower와 upper는 각각 하한 상한을 나타내고

각종의 데이터들을 알려준다

 

 

 

시각화

 

숫자로 암만 봐봐야 차트로 보는게 이해가 가장 빠르다

 

 

prophet.plot(forecast)
plt.savefig('chart1.png')
plt.show()

 

 

prophet.plot_components(forecast)
plt.savefig('chart2.png')
plt.show()

 

 

 

 

전체의 데이터들을 봤지만 region이 각각 다르기때문에 해당 지역의 결과값을 따로 보자

 

 

df_west = df.loc[ df['region'] == 'West', ]

df_west = df_west[['Date','AveragePrice']]
df_west.columns = ['ds','y']
df_west

 

 

 

 

전체의 결과에선 하락하지만 오르는걸 볼 수 있다

 

 

 

 

 

'Python > MachineLearning' 카테고리의 다른 글

Hierarchical Clustering - 개념  (0) 2024.04.16
K-Means Clustering - 개념 + WCSS  (0) 2024.04.15
Decision Tree 의사결정 트리 - 개념  (0) 2024.04.15
Support Vector Machine - 개념  (0) 2024.04.15
K - Nearest Neighbor - 개념  (0) 2024.04.15