개발학습일지

[AI] 타임시리즈 데이터 prophet과 redample 사용하여 예측 본문

AI/AI

[AI] 타임시리즈 데이터 prophet과 redample 사용하여 예측

처카푸 2024. 4. 24. 12:28

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()

prophet.plot(forecast)
prophet.plot_components(forecast)