resample 과 prophet 같이 사용하여 예측하기
resample() 이란?
resample 함수가 년단위, 월단위 등으로 데이터를 묶어서 처리가 가능하다
함수 사용하기 전 데이터 준비
그룹바이 함수를 이용해서는 날짜 데이터를 바로 년, 월, 일, 시 단위 등으로 묶으라고 할 수 없다
그래서 먼저 날짜 컬럼을 인덱스로 만들어서 resample 함수를 사용 할 수 있게 만들어야한다
사용할 날짜 컬럼 데이터 타입 확인 후 오브젝트일 경우 데이트 타임으로 변경
df['Date'].info()
# format=에 해당 컬럼에 날짜가 입력 되어있는 형식을 입력해준다
df['Date'] = pd.to_datetime( df['Date'], format= '%m/%d/%Y %I:%M:%S %p' )
리샘플하고 각 년도, 월, 분기, 일별로 몇개의 데이터를 가지고 있는지 확인한다
resample 함수를 사용하려면 인덱스는 무조건 datetime 이어야 한다
# 인덱스 datetime 으로 만들기
chicago_df.index = chicago_df['Date']
# 년도로 리샘플한 후, 각 년도별 몇개의 데이터를 가지고 있는지 확인
df_year = df.resample('YS').size()
# 월별 건수 확인
df_month = df.resample('M').size()
# 분기별 건수 확인
df_q = df.resample('Q').size()
# 일별 건수 확인
df_day = df.resample('D').size()
resample 과 prophet 하기 위한 데이터 준비
월별 주기로 하여 데이터프레임을 만들자
- 프로펫 라이브러리를 사용하려면, 날짜 컬럼은 'ds' 로, 에측하려는 수치는 'y'로 바꿔야한다
# 월별 resample('D').size() 주기로 하여 데이터프레임을 만들고 to_frame()
# 인덱스를 리셋하고 reset_index() 컬럼 이름을 'ds'와 'y'로 변경한다
df_prophet = chicago_df.resample('D').size().to_frame().reset_index().rename(columns={'Date':'ds',0:'y'})
prophet을 이용하여 데이터 예측하기
# 비어있는 prophet 변수 만들기
prophet = Prophet()
# 학습시키기
prophet.fit(df_prophet)
# 예측 할 정보 만들기
future = prophet.make_future_dataframe(periods=365, freq='D')
# 정보 만들 것을 예측하기
forecast = prophet.predict(future)
# 그래프로 예측 한 것 확인하기
prophet.plot(forecast)
plt.show()
prophet.plot_components(forecast)
plt.show()
'MACHINE | DEEP LEARNING > Machine | Deep Learning Library' 카테고리의 다른 글
[AI] Time Series Data를 Prophet 라이브러리를 이용해서 예측하기 (0) | 2024.04.23 |
---|