728x90
AVOCADO 가격 예측 ( Prophet )
STEP #0: 데이터셋
- 데이터는 미국의 아보카도 리테일 데이터 입니다. (2018년도 weekly 데이터)
- 아보카도 거래량과 가격이 나와 있습니다
- 컬럼 설명 :
- Date - The date of the observation
- AveragePrice - the average price of a single avocado
- type - conventional or organic
- year - the year
- Region - the city or region of the observation
- Total Volume - Total number of avocados sold
- 4046 - Total number of avocados with PLU 4046 sold - PLU는 농산물 코드입니다
- 4225 - Total number of avocados with PLU 4225 sold
- 4770 - Total number of avocados with PLU 4770 sold
필요 라이브러리들 import 과정
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
import random
import seaborn as sns
from fbprophet import Prophet
데이터프레임 확인을 한 후
데이터의 날짜가 뒤죽박죽이니. 날짜로 정렬
df.sort_values('Date',inplace=True)
'region' 별로 데이터 몇개인지 시각화
df['region'].value_counts()
plt.figure(figsize=(6,10))
sb.countplot(data=df,y='region')
plt.show()
Prophet을 이용한 예측하는 인공지능 개발은 컬럼이 몇 개가 있든 상관 없지만 꼭 필요한
2개의 컬럼이 있다. 바로 날짜 컬럼과 , y값 이 실습에서는 'AveragePrice' 평균가격이다.
그래서 그 두개의 컬럼만 가져온다.
avocado_prophet_df = df[['Date','AveragePrice']]
avocado_prophet_df
Prophet을 이용한 예측 수행 전에 위에서 새로 가공한 데이터프레임의 컬럼명을 ds와 y로 셋팅해주어야한다.
avocado_prophet_df.columns = ['ds','y']
avocado_prophet_df
프로펫 예측 1. 라이브러리를 변수로 만든다.
prophet = Prophet()
프로펫 예측 2. 데이터로 학습 시킨다.
prophet.fit(avocado_prophet_df)
프로펫 예측 3. 예측하고자하는 기간을 정해서 비어있는 데이터프레임을 만든다.
이 과정은 prophet라이브러리에서 제공하는 make_future_dataframe을 이용
future=prophet.make_future_dataframe(periods=365,freq='D')
# 이 코드에서는 periods를 365로 freq에 'D'를 넣어주어
# 365일치를 예측하기위해 365일치의 비어있는 데이터프레임 생성
프로펫 예측 4. 위에서 만든 future 데이터프레임을 이용해서 예측
forecast=prophet.predict(future)
forecast
# 차트로 확인
prophet.plot(forecast)
plt.savefig('chart1.jpg')
prophet.plot_components(forecast)
plt.savefig('chart2.jpg')
'인공지능 > 딥러닝' 카테고리의 다른 글
Yolov8 - 내 커스텀 데이터를 이용해 학습하기 / 훈련 데이터와 검증 데이터로 나누기 (0) | 2023.05.31 |
---|---|
딥러닝 : Time Series 데이터를 처리할 때 사용하는 resample() (0) | 2023.01.03 |
딥러닝 : 에포크 시마다 가장 좋은 모델을 저장하는 ModelCheckpoint와 기록을 남기는 CSVLogger 사용법 (0) | 2023.01.02 |
딥러닝 : Fine tuning 파인튜닝 (0) | 2023.01.02 |
딥 러닝 : Transfer Learning ( MobileNetV2 ) (0) | 2023.01.02 |