[제로베이스] CH4. EDA - 시계열분석(forecast) Prophet 기초

정해성·2023년 7월 12일
0

제로베이스

목록 보기
35/36
post-thumbnail

🚩 prophet 이란

Prophet은 prophet은 facebook에서 만든 시계열 예측 라이브러리다. 시계열 데이터를 예측(모델링)하는 방법론에는 머신러닝 방법론 그리고 고전적인 기법 ARIMA가 있다. Prophet은 머신러닝 기법은 아니며, ARIMA라고 하는 알고리즘 방법론을 응용하고 있다. ARIMA를 이용하면 계절마다의 반복성이나 여름철에 증가하는 전기 사용료를 모델링할 수 있습니다.

🚩 fbprophet -> prophet

원래 fbprophet이라고 설치하고 import할 때도 fbprophet사용 했지만 현재는 prophet으로 바뀌었다. 그래서 설치할때도, import 할 때에도 fbprophet도 아닌 prophet으로 적어야 맞다. fbprophet으로 설치하고 import안되서 삽질하다가 알아냈다.....

🚩 prophet 기초

🔎 예측 방법

출처 : https://chaelist.github.io/docs/ml_application/time_series/

🔎 순서

    1. 시계열 데이터 준비(만들기)

      df = pd.DataFrame({"ds":ds, "y": result})
    1. Prophet 모델을 변수로 만들기 : 계절성 학습모델 생성

      m = Prophet(yearly_seasonality = True, daily_seasonality=True);
    1. 학습모델에 시계열 데이터로 학습시키기

      m.fit(df);
    1. 예측하고자 하는 기간을 정해서, 비어있는 데이터 프레임 만들기 : 원하는 미래 구간 설정
		future = m.make_future_dataframe(periods=30);
    
    		- 기본구조 : prophet.make_future_dataframe(periods = 365)

    		- 디폴트 파라미터 freq = 'D',

    		- 미래 날짜를 만들어준다. 미래의 데이터
    1. 프로펫의 predict 함수에, 빈 데이터프레임을 넣어서, 예측 데이터를 채운다. : 미래의 구간 예측 시키기

      forecast = m.predict(future);

🔎 예시 1. 시계열 데이터 만들기

시계열 데이터란 일정한 시간 동안 수집 된 일련의 순차적으로 정해진 데이터 셋의 집합이다. 시계열 데이터의 특징으로는 시간에 관해 순서가 매겨져 있다는 점과, 연속한 관측치는 서로 상관관계를 갖고 있다.

🔎 계절성 학습

계절성(Seasonality)

계절성이란 일정한 빈도를 가지고 주기적으로 반복되는 패턴으로, 해마다 특정한 때 혹은 1주일마다 특정 요일에 나타나는 것 같은 요인이 시계열에 영향을 줄 때 계절성 패턴이 나타난다.

prophet에서의 seasonality

prophet에서는 아무런 설정도 하지 않은 경우 자동으로 연간, 주간 계절성을 파악해서 맞춘다. 여기서는 연간, 일간 계절성을 학습해보겠다.

🔎 미래 예측

  • 원하는 미래의 기간을 넣어 학습하고 그래프로 시각화

🔎 예시 2.

시계열 데이터

학습모델 생성 -> 미래 예측

🔎 예시 3.

시계열 데이터

학습모델 생성 -> 미래 예측

profile
코린이 공부중

1개의 댓글

comment-user-thumbnail
2024년 3월 12일

저도 제로베이스 데이터스쿨을 듣고 있는데 방금 실습을 하다 fbprophet 설치가 계속 안되서 찾아보던 중 이글을 찾게 되었습니다. 덕분에 해결할 수 있었습니다 너무 감사합니다

답글 달기