
【시계열 데이터 분석】에 사용된 라이브러리
Facebook에서 개발한 시계열 예측 라이브러리이다.
비교적 간단한 사용법과 높은 예측 정확도로 비전문가도 쉽게 활용할 수 있다.
연간, 주간, 일간과 같은 시간 간격의 계절성을 자동으로 감지하고 이를 고려한 예측을 제공한다.
특히 일일 주기를 갖는 시계열 데이터에 적합하도록 설계되어 있다.
이상치(outliers)를 자동으로 감지하고 예측에 영향을 미치는 이상치를 제거하여 모델에 적용할 수 있는 기능을 제공한다.
윈도우 OS는 Visual Studio Build Tool을 먼저 설치한다.
pandas-datareader 모듈 설치
conda install pandas-datareader
conda install -c conda-forge prophet

fbprophet으로 import 하면 오류 발생 ❗

공식 GitHub에서 이름이 변경되었음을 확인했다.

근데 import prophet으로 다시 오류 발생 ❗

경고 문구에서 plotly 모듈 import에 실패했다고 하여 해당 모듈 설치 후 오류 해결

import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
%matplotlib inline
from pandas_datareader import data
from prophet import Prophet
임의의 2년 간의 일일 데이터가 sin 그래프 경향을 나타낸다고 가정한다.
sin 그래프에 약간의 편향성(+time)을 준다.
sin 그래프에 노이즈(+np.random.randn(365*2)/4)를 살짝 싣는다.
// ds: 날짜
ds = pd.date_range("2021-01-01", periods=365*2, freq="D")
// y: 관측값
time = np.linspace(0, 1, 365*2)
fsin = np.sin(2 * np.pi * 12 * time) + time + np.random.randn(365*2)/4
// DataFrame 생성
df = pd.DataFrame({"ds": ds, "y": fsin})
// 데이터 시각화
df["y"].plot(figsize=(10, 6));

model = Prophet(yearly_seasonality=True, daily_seasonality=True)
model.fit(df);
future_df = model.make_future_dataframe(periods=30)
forecast = model.predict(future_df)
model.plot(forecast);
