Prophet으로 시계열 예측을 쉽게
1. 소개
최근 쉽게 시계열 예측을 하기 위해 Prophet을 사용해 보았다.
모처럼이므로 도입에서 움직이는 곳까지를 공유하려고 기사로했습니다.
2.Prophet은 무엇입니까?
Prophet은 facebook사가 OSS(MIT 라이센스)로서 공개하고 있는 시계열 예측 패키지.
미세한 이론에 관해서는 여기서 언급하지 않지만, 일반화 가법 모델을 이용하여 예측이 행해지고 있다.
공식 페이지
github
3. 검증을 위해 가상 환경을 만들고 가상 환경으로 전환
#prophet_envという仮想環境をpython3.7系で作成(3.8系だとfbprophet 0.6に非対応)
conda create -n prophet_env python=3.7
#base環境から作成したprophet_env仮想環境に切り替える
conda activate prophet_env
4.도입~동작 확인
우선, Visual Stuido Community를 설치해 둔다.
※C++ Compiler가 필요하다
Visual Studio Code 사이트
그 위에 다음 라이브러리를 도입한다.
#ProphetはPyStanに依存している為に導入
conda install plotly -y
#fbprophetを導入(2020/11/1時点のバージョンは0.7.1だったがエラーが出たので0.6)
conda install -c conda-forge fbprophet==0.6
#環境がminicondaなので・・(numpyやpandasは↑でたまたま一緒に導入されたので個別には入れなかった)
conda install matplotlib
아래 명령으로 오류가 발생하지 않으면 도입 성공
from fbprophet import Prophet
5. 실제로 사용해 본다
이번에는 샘플 데이터 세트로 간단한 "AirPassengers"라는 데이터 세트를 사용합니다.
Month 컬럼에 시계열 부분, Passengers 컬럼에 비행기 승객 수의 추이가 들어 있다.
데이터 세트 링크
Month
#Passengers
1949/1/1
112
1949/2/1
118
1949/3/1
132
5-1:파일 로드까지
import numpy as np
import matplotlib.pyplot as plt
import pandas as pd
from fbprophet import Prophet
#AirPassengersのcsvを読み取る
df = pd.read_csv('AirPassengers.csv')
5-2:Prophet 학습
#Prophetではカラム名をdsとyに変更する必要があるので変更する
df.columns = ['ds', 'y']
#今回はProphetにデータフレーム後ろから10番目までを学習(fit)させる
m = Prophet()
m.fit(df[:-10])
5-3:Prophet에서 예측
'''
periods=10:10マス分予測させる
freq='M':単位は「Month」
→つまり10か月分予測させるという意味
'''
future = m.make_future_dataframe(periods=10, freq='M')
forecast = m.predict(future)
#forecastの結果を図示する
fig = m.plot(forecast)
↓와 같이 표시될 것.
※검은 점은 학습 데이터
6. 마지막으로
어땠어?
프로그램 자체는 간단하게 동작하기 때문에, 오히려 도입 쪽이 손질할지도 모른다.
버전이 다르거나 하면 어딘가에서 오류가 될지도 모르고, 실제로 나도 처음에는 거기서 망설였다.
(PyStan, libpython 등은 fbprophet==0.6에서 함께 도입되었으므로 결국 개별적으로 도입하지 않았다)
간단하기 때문에 꼭 시험해 보길 바란다.
Reference
이 문제에 관하여(Prophet으로 시계열 예측을 쉽게), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/ku_a_i/items/163bb41ece57776fb012
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
#prophet_envという仮想環境をpython3.7系で作成(3.8系だとfbprophet 0.6に非対応)
conda create -n prophet_env python=3.7
#base環境から作成したprophet_env仮想環境に切り替える
conda activate prophet_env
4.도입~동작 확인
우선, Visual Stuido Community를 설치해 둔다.
※C++ Compiler가 필요하다
Visual Studio Code 사이트
그 위에 다음 라이브러리를 도입한다.
#ProphetはPyStanに依存している為に導入
conda install plotly -y
#fbprophetを導入(2020/11/1時点のバージョンは0.7.1だったがエラーが出たので0.6)
conda install -c conda-forge fbprophet==0.6
#環境がminicondaなので・・(numpyやpandasは↑でたまたま一緒に導入されたので個別には入れなかった)
conda install matplotlib
아래 명령으로 오류가 발생하지 않으면 도입 성공
from fbprophet import Prophet
5. 실제로 사용해 본다
이번에는 샘플 데이터 세트로 간단한 "AirPassengers"라는 데이터 세트를 사용합니다.
Month 컬럼에 시계열 부분, Passengers 컬럼에 비행기 승객 수의 추이가 들어 있다.
데이터 세트 링크
Month
#Passengers
1949/1/1
112
1949/2/1
118
1949/3/1
132
5-1:파일 로드까지
import numpy as np
import matplotlib.pyplot as plt
import pandas as pd
from fbprophet import Prophet
#AirPassengersのcsvを読み取る
df = pd.read_csv('AirPassengers.csv')
5-2:Prophet 학습
#Prophetではカラム名をdsとyに変更する必要があるので変更する
df.columns = ['ds', 'y']
#今回はProphetにデータフレーム後ろから10番目までを学習(fit)させる
m = Prophet()
m.fit(df[:-10])
5-3:Prophet에서 예측
'''
periods=10:10マス分予測させる
freq='M':単位は「Month」
→つまり10か月分予測させるという意味
'''
future = m.make_future_dataframe(periods=10, freq='M')
forecast = m.predict(future)
#forecastの結果を図示する
fig = m.plot(forecast)
↓와 같이 표시될 것.
※검은 점은 학습 데이터
6. 마지막으로
어땠어?
프로그램 자체는 간단하게 동작하기 때문에, 오히려 도입 쪽이 손질할지도 모른다.
버전이 다르거나 하면 어딘가에서 오류가 될지도 모르고, 실제로 나도 처음에는 거기서 망설였다.
(PyStan, libpython 등은 fbprophet==0.6에서 함께 도입되었으므로 결국 개별적으로 도입하지 않았다)
간단하기 때문에 꼭 시험해 보길 바란다.
Reference
이 문제에 관하여(Prophet으로 시계열 예측을 쉽게), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/ku_a_i/items/163bb41ece57776fb012
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
#ProphetはPyStanに依存している為に導入
conda install plotly -y
#fbprophetを導入(2020/11/1時点のバージョンは0.7.1だったがエラーが出たので0.6)
conda install -c conda-forge fbprophet==0.6
#環境がminicondaなので・・(numpyやpandasは↑でたまたま一緒に導入されたので個別には入れなかった)
conda install matplotlib
from fbprophet import Prophet
이번에는 샘플 데이터 세트로 간단한 "AirPassengers"라는 데이터 세트를 사용합니다.
Month 컬럼에 시계열 부분, Passengers 컬럼에 비행기 승객 수의 추이가 들어 있다.
데이터 세트 링크
Month
#Passengers
1949/1/1
112
1949/2/1
118
1949/3/1
132
5-1:파일 로드까지
import numpy as np
import matplotlib.pyplot as plt
import pandas as pd
from fbprophet import Prophet
#AirPassengersのcsvを読み取る
df = pd.read_csv('AirPassengers.csv')
5-2:Prophet 학습
#Prophetではカラム名をdsとyに変更する必要があるので変更する
df.columns = ['ds', 'y']
#今回はProphetにデータフレーム後ろから10番目までを学習(fit)させる
m = Prophet()
m.fit(df[:-10])
5-3:Prophet에서 예측
'''
periods=10:10マス分予測させる
freq='M':単位は「Month」
→つまり10か月分予測させるという意味
'''
future = m.make_future_dataframe(periods=10, freq='M')
forecast = m.predict(future)
#forecastの結果を図示する
fig = m.plot(forecast)
↓와 같이 표시될 것.
※검은 점은 학습 데이터
6. 마지막으로
어땠어?
프로그램 자체는 간단하게 동작하기 때문에, 오히려 도입 쪽이 손질할지도 모른다.
버전이 다르거나 하면 어딘가에서 오류가 될지도 모르고, 실제로 나도 처음에는 거기서 망설였다.
(PyStan, libpython 등은 fbprophet==0.6에서 함께 도입되었으므로 결국 개별적으로 도입하지 않았다)
간단하기 때문에 꼭 시험해 보길 바란다.
Reference
이 문제에 관하여(Prophet으로 시계열 예측을 쉽게), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/ku_a_i/items/163bb41ece57776fb012
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
Reference
이 문제에 관하여(Prophet으로 시계열 예측을 쉽게), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/ku_a_i/items/163bb41ece57776fb012텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)