미래의 아보카도 가격을 예측하는 인공지능 - Prophet

_찬·2022년 9월 6일
0

머신러닝

목록 보기
2/2
post-thumbnail

먼저 예측하기에 앞서서 Kaggle에서 제공하는 아보카도 데이터를 가져오도록 하겠다.

아보카도 데이터셋

오늘 우리가 모델을 학습시킬 패키지는 prophet라는 것을 사용할 것이다.

prophet란?

prophet는 facebook에서 만든 시계열 예측 라이브러리이다.
정확도가 높고 빠르며, 직관적인 파라미터로 모델 수정이 용이하다는 장점을 갖고 있다.

다운방법은 아래와 같다.
주피터 노트북 기준

  1. conda install pystan==2.19.1.1 prophet
  2. conda install cython
  3. conda install fbprophet

이제 아보카도의 미래 가격을 예측하는 코드를 짜보겠다.
데이터 전처리 과정은 아주 간단하게 하도록 하겠다.

df = df.loc[(df.type == 'conventional') & (df.region == 'TotalUS')] # 미국 전체에 대한 conventional을 가져와라

df['Date'] = pd.to_datetime(df['Date']) # 현재 Data가 str로 되어 있어 to_datatime 숫자로 바꿔줌 

data = df[['Date', 'AveragePrice']].reset_index(drop=True)

data = data.rename(columns={'Date': 'ds', 'AveragePrice': 'y'}) # reaname를 사용하여 Data, AveragePrice의 이름을 바꿔줌 

data.head()

전처리 과정은 위처럼 간단하게 날짜가 str 형이라서 숫자형으로 바꿔주고,
아보카도는 conventional의 US것만 넣어주었다.
그렇게 해서 실행을 해보면

이렇게 나오고 이제 365일 뒤의 값을 예측하는 코드를 넣으면

model = Prophet()

model.fit(data) # 학습시키기
future = model.make_future_dataframe(periods=365) # 앞으로 365일 뒤의 가격을 예측한다.

forecast = model.predict(future) # 미래를 예측한다.

forecast.tail()

점이 없는 부분부터가 이 모델이 예측한 결과이다.
또한 위 그래프가 왜 저렇게 그려졌는지 이유도 알 수 있다.

fig2 = model.plot_components(forecast)


이유로는

  1. 2015년에서 갑자기 2017년에 훅 올라갔다가 다시 2018년 부터 내려오기 때문이다.
  2. 1월부터 12월까지 중에서 2월이 제일 낮고, 11월에 가장 높기 때문이다.

오늘 prophet라는 페이스북에서 만든 시계열 알고리즘을 처음 써보았는데,
정말 모델의 정확도도 좋은 것 같고, 미래를 예측 한다는 점에서 정말 좋은 것 같다.

코드
깃허브 아보카도 가격 예측 코드

아보카도 가격 예측 모델을 만드는 영상
빵형의 개발도상국

profile
꾸준한 사람이 되길!

0개의 댓글