머신러닝/머신러닝 라이브러리

Prophet 라이브러리의 사용법

Cong_S 2022. 5. 11. 17:48

이번에는 데이터의 시계열 예측을 위한 라이브러리 Facebook의 Prophet 라이브러리에 대해 알아보자.

Prophet 라이브러리는 현재 보유 중인 시간대별 데이터를 학습하여 미래의 데이터를 예측하는 곳에 많이 쓰이는 라이브러리이다.

 

아나콘다와 같은 다른 환경에서는 별도로 Prophet 라이브러리를 설치해주어야 하지만

 

다음과 같은 데이터 셋으로 앞으로 1년간의 아보카도 평균 가격을 예측해보려한다. 

이런 경우에 많이 사용되는 라이브러리가 Prophet 라이브러리이다.

 

 

avocado_prophet_df.columns = [ 'ds', 'y' ]
Prophet 라이브러리를 사용할 때 중요한 점은 학습에 사용할 데이터 컬럼의 이름은 'ds'
예측되어 결과값이 될 데이터 컬럼은 'y' 로 명명해야한다는 것이다.
위 문장으로 컬럼의 이름을 바꾸어주었다.

 

# 1. 변수로 만들고
prophet = Prophet()

# 2. 기존의 데이터로 학습시키기
prophet.fit(avocado_prophet_df)

# 365일치를 예측하시오.
# 3. 예측하고자 하는 기간을 정해서, 비어있는 데이터 프레임 만들기
future = prophet.make_future_dataframe(periods = 365, freq = 'D' )  # freq 의 디폴트는 'D'

#4. 프로펫의 predict 함수에, 빈 데이터프레임을 넣어서, 예측 데이터를 채운다.
forecast = prophet.predict(future)​

맨 왼쪽에 yhat 값이 예측한 결과값이다.

 

비주얼라이징해보자.

# 차트로 확인하시오.
prophet.plot(forecast)
plt.savefig('chart1.jpg')      # 버그가 있어서 같은 차트가 두 개 만들어짐. plt.savefig('chart1.jpg') 로 없앨 수 있다.
# 까만점이 실제 데이터, 가운데 파란선이 yhat

차트를 해석하는 방법은 다음과 같다.

까만 점은 실제 데이터의 값,

가운데 파란 선은 예측된 yhat의 값이다.

다시 말해 까만 점이 없는 부분부터 미래의 데이터라는 뜻이다.

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

# 위에 차트는 실제 데이터가 있는 곳은 한 줄로 이어지다가 예측 데이터 부분에서 갈라지기 시작하고 해석은 앞으로의 추세로 읽을 수 있다.
# 아래 차트는 1년 동안의 데이터 변동 근황을 알 수 있다. 주기성 예측

일부 컬럼만 예측할 때에도 방법은 같다.

 

컬럼의 이름을 'ds'와 'y' 로 바꾸고

prophrt 라이브러리를 불러와 변수화시키고

기존의 데이터를 학습시킨 후

make_future_dataframe 함수로 원하는 기간만큼 빈 데이터프레임을 만든 후 

학습이 끝난 propher에 빈 데이터프레임을 넣어 예측 데이터를 채워준다.