facebook의 AI prophet을 이용한 시계열 데이터의 미래 예측

Facebook의 Prophet이란?



Prophet은 Facebook의 Core Data Science 팀이 공개한 오픈 소스 소프트웨어입니다. 시계열 데이터를 예측하기 위해 R 또는 Python에서 사용할 수 있는 프레임워크입니다. 특히 매년, 매주마다의 주기성이나, 휴일 등의 영향을 가미한 모델인 점이 특징이 됩니다.
htps : // 펑세보오 k. 기주 b. 이오 / p로 p에 t /

다른 사이트의 정보에 의하면, Python의 기계 학습 프레임워크의 Scikit learn과 사용법이 비슷하다고 합니다.

Prophet의 특징


  • 정확하고 빠른
  • 전자동
  • 튜닝 가능한 예측
  • R 또는 Python에서 사용 가능

  • 설치 방법



    Windows 10 64bit의 경우에 대해 설명합니다. 사전에 Prophet이 의존하는 여러 라이브러리를 설치해야 합니다.

    먼저 Anaconda를 설치합니다. (필수는 아니지만 파이썬과 주요 라이브러리가 설치되기 때문에 쉽습니다)
    Anaconda를 설치하지 않는 경우 별도로 다음 라이브러리를 설치해야합니다.
  • numpy
  • cython
  • matplotlib

  • Anaconda에 포함되지 않은 것으로 다음을 설치합니다.
  • PyStan
  • C++ Compiler
  • libpython
  • mingw-w64

  • 우선, Pystan 설치. Anaconda Prompt에서 실행합니다.
    
    > pip install pystan
    
    

    다음으로 여기에서 C++ Compiler 설치
    h tp ///////////////////////////////////////////////////////////////////////////////(b)ゔぃすあ lsつぢお。 코 m / ゔ ぃ ああ l c ー p 뾰족 ld와 ls

    그리고 libpython과 mingw-w64를 설치합니다.
    
    > conda install libpython
    > conda install -c msys2 m2w64-toolchain
    
    

    이것으로 Prophet이 의존하는 라이브러리의 설치가 완료됩니다.
    마침내 Prophet을 설치합니다. pip에서도 설치할 수 있다고 합니다만, 내 환경에서는 잘 가지 않았으므로, 아래와 같은 conda 커멘드로 인스톨 했습니다.
    
    > conda install -c conda-forge fbprophet
    
    

    Prophet의 동작 확인



    제대로 설치되었는지 확인하기 위해 Quick Start 프로그램을 실행해보십시오.

    CSV 파일 얻기



    아래 사이트에서 분석 데이터를 다운로드합니다. Wikipedia 페이지의 일일 방문자 수를 분석합니다.
    example_wp_peyton_manning.csv를 사용합니다.

    소스 코드



    튜토리얼에 쓰여진 대로입니다. 그래프는 콘솔에서 실행해도 표시되지 않았으므로 png 형식으로 저장하도록 다시 작성했습니다.

    QuickStart.py
    
    import pandas as pd
    import numpy as np
    from fbprophet import Prophet
    
    df = pd.read_csv('example_wp_peyton_manning.csv')
    # print(df.head())
    df['y'] = np.log(df['y'])
    
    m = Prophet()
    m.fit(df)
    
    future = m.make_future_dataframe(periods=365)
    future.tail()
    
    forecast = m.predict(future)
    forecast[['ds', 'yhat', 'yhat_lower', 'yhat_upper']].tail()
    
    m.plot(forecast).savefig('1.png');
    
    m.plot_components(forecast).savefig('2.png');
    
    

    이런 짧은 코드로 움직이는군요.

    예측 결과



    잘 움직이고 있습니다. 흑점이 과거 실적, 청색 선이 미래 예측 데이터와 같습니다.


    연간, 주별 주기성과 추세로 나누어 요소별 분석 결과를 나누어 표시할 수 있습니다. 이것은 재미 있습니다.


    앞으로 하고 싶은 일



    facebook의 Prophet은 아직도 세세한 튜닝을 할 수 있다고 하고, 여러가지 시험해 보고 싶다고 생각합니다.

    좋은 웹페이지 즐겨찾기