728x90
반응형
페이스북 시계열 분석 라이브러리 : Prophet
📍 시계열 예측을 그래프(시각화)로 표현하는 모델
📍 Prophet 모델에 넣어줘야 하는 데이터 형태
- index는 날짜, Data컬럼, Adj Close(수정종가) 컬럼
- Prophet에서 사용하는 컬럼명은 ds, y 컬럼명을 사용함
> 기존 컬럼명을 수정해야함
> Data 컬럼명은 ds로, Adj Close 컬럼명은 y로 수정

데이터 프레임 수정
### 원본데이터에서
# - 최종 데이터 프레임 변수명 : prophet_data
prophet_data = goog_data.copy()
# - Date index는 컬럼 데이터로 변환
prophet_data.reset_index(inplace=True)
# - 훈련에 사용할 컬럼명 : Date, Adj Close
# - 훈련에 사용하지 않는 컬럼은 삭제
prophet_data.drop(["Open", "High", "Low", "Close", "Volume"], axis=1, inplace=True)
# - 훈련에 사용할 컬럼명 변경 : Data > ds, Adj Close > y
prophet_data.columns = ['ds', 'y']
# - ds 데이터 타입 변경
prophet_data["ds"] = pd.to_datetime(prophet_data["ds"])
prophet_data

Prophet 라이브러리 설치
📍Prophet 라이브러리
- 가상환경 새로 만들어서 진행 : 버전 충돌이 많이 일어남
- 가상환경 생성 시 python 버전은 3.6 버전 사용(3.9 버전은 사용이 안되기에, 3.9 이하 버전으로 사용)
- Prophet 라이브러리는 C++ 프로그램으로 만들어져 있음
from fbprophet import Prophet
Prophet 모델 생성
''' 일 단위 주기성 활성화하기 '''
### prophet 모델 생성
model = Prophet(daily_seasonality=True)
''' 모델 학습 시키기 '''
model.fit(prophet_data[["ds", "y"]].iloc[:-10])
3년 후 예측하기
### 기존 값에 3년 후 일자를 포함해서 추출하기
future = model.make_future_dataframe(periods=365 * 3)
# future
### 예측하기
forecast = model.predict(future)
# forecast
### 시각화
model.plot(forecast)


# 계절성을 나타내는 그래프
# 그려진 범위 그래프가 커질 수록 오차가 있는 것
model.plot_components(forecast)


728x90
반응형
'Digital Boot > 시계열 분석' 카테고리의 다른 글
[시계열 분석] 주가예측 / 시계열 데이터 분석 / ARIMA 모델 - (2) (0) | 2024.01.16 |
---|---|
[시계열 분석] 주가예측 / 시계열 데이터 분석 / ARIMA 모델 - (1) (2) | 2024.01.15 |
[시계열 분석] 시계열 데이터 (1) | 2024.01.15 |