반응형
Prophet
- 사전적 의미로는 예언자 라는 뜻
- 페이스북에서 공개한 날짜/시간 예측을 위한 오픈 소스 라이브러리
- 컬럼명은 ds와 y로 변경하여야 사용 가능
- 첫번째 컬럼 ds는 반드시 datetime 형태로 변환
- 즉, 시간에 따른 y의 값을 학습하여 미래를 예측
Prophet 라이브러리 호출
주피터 노트북 : !pip install Prophet
아나콘다 프롬프트 : conda install -c conda-forge fbprophet
from fbprophet import Prophet
목표
- 예시에 사용 할 데이터프레임
- 지금까지의 데이터를 학습하여 미래의 가격을 예측해보기
df = pandas.read_csv('avocado.csv', index_col=0)
df.head()
사용할 컬럼 추출
- 날짜에 따른 데이터 정렬
df = df.sort_values('Date')
df.head()
- 날짜(Date)와 가격(AveragePrice) 컬럼 추출
- prophet 라이브러리 사용을 위해 컬럼명 변경
- 첫번째 컬럼명은 'ds', 두번째 컬럼명은 'y'
- prophet 라이브러리 사용을 위해 컬럼명 변경
prophet_df = df[ ['Date', 'AveragePrice'] ] # 컬럼 추출
prophet_df.columns = ['ds', 'y'] # 컬럼명 변경
prophet_df.head()
Prophet 모델링
- from fbprophet import Prophet 호출
- 없을 경우 설치, pip install fbprophet
- 인공지능 생성
- prophet = Prophet()
- 인공지능 학습
prophet.fit(prophet_df
# ds, y 컬럼명으로 변경한 데이터프레임 학습
- 예측 기간 설정 후 데이터프레임 저장
- Prophet.make_future_dataframe( periods= 기간, freq= 단위)
- periods : 수치 설정
- freq : 수치의 단위 설정, 기본 값은 일(day)
- Y(년), M(월), W(주), D(일), H(시간), M(분), S(초)
- Prophet.make_future_dataframe( periods= 기간, freq= 단위)
future = prophet.make_future_dataframe( periods=365 )
# 예측할 기간 설정 : 365일
# 예측한 값을 저장할 빈 데이터프레임 future 생성
Prophet 인공지능 테스트
- 학습시킨 인공지능에게 기간 설정을 한 변수 전달하여 예측 수행
# 예측 데이터로 채움
forecast = prophet.predict(future)
# 365일치 예측 값 출력 확인
forecast.head()
인공지능 예측값 시각화
- 시각화를 진행 할 경우 차트가 두개로 나오는 버그가 있습니다.
- 편법으로는 출력된 그래프를 저장하면 차트가 하나로 나오게 할 수 있습니다.
- Prophet.plot(값) : 예측 값 확인 차트 생성
- 차트의 검은 부분 : 실제 값 데이터
- 차트의 파란 부분 : 미래 1년까지의 예측 값 데이터
prophet.plot(forecast) # 차트 생성
plt.savefig('chart1.jpg')
# 두개로 나오는 차트 버그 사라지게 하는 방법, 저장하여서 한개로 출력
- Prophet.plot_components(값) : 예측 값과 예측 경향(트렌드) 확인 차트 생성
prophet.plot_components(forecast) # 차트 생성
plt.savefig('chart2.jpg')
# 두개로 나오는 차트 버그 사라지게 하는 방법, 저장하여서 한개로 출력
반응형