Prophet이라는 라이브러리를 통해 미래 데이터를 예측해볼 수 있습니다.
페이스북에서 개발한 라이브러리이며, 실제로 많이 활용한다고 합니다.
어떤 형태로 작동하는지는 굳이 살피지 않아도 라이브러리가 다 알아서해 주며, Python과 R이 사용가능합니다.
이번 개발환경은 구글 Colab을 통해 진행하겠습니다.
Prophet 공식 사이트도 공유드리오니 참고하시길 바랍니다.
https://facebook.github.io/prophet/docs/quick_start.html
1. 라이브러리 다운로드
!pip install prophet
#!pip install fbprophet (구버전으로 작동하지 않습니다)
fbprophet은 구버전이라고 합니다.
2. 라이브러리 불러오기
import pandas as pd
from prophet import Prophet
pandas는 데이터 프레임을 조작하기 위한 라이브러리이며, 방문자수 예측을 위하여 Prophet을 불러와줍니다.
3. Google Analytics 데이터 로드
GA(Google Analytics) 데이터를 로드하였습니다.
티스토리 블로그에도 코드를 심어두었습니다.
어떤 매체를 통해 방문하는지 연/월/일자 별로 두었고, 위 데이터에서 '세션'을 간단히 '방문자'로 보기로 하였습니다.
아직은 미미한 수준의 방문자입니다 ㅎㅎ
4. 데이터 전처리
Prophet 공식사이트를 보아도 아시겠지만, 간단히 처리하기 위하여 단 2개의 열만 가져오도록 하겠습니다.
첫 번째 블로그를 만들었던 날이 2022년 6월 14일이네요.
당시 10명 방문(중복집계 포함) 하였는데, 아마 제가 다 들어가지 않았을까 싶습니다.
그 뒤로 마지막 5개행 데이터를 보니 2023년 1월 18일 방문자수가 40명 정도로 되었네요.
제가 들어간 게 아닌 데이터이니 많이? 늘었습니다.
40분이나 방문해주시다니 감사할 따름입니다.
5. Prophet 함수
def sales_predictions(sales_df, periods) :
sales_df = sales_df[['달력연월', '세션']].rename(columns = {'달력연월' : 'ds', \
'세션' : 'y'})
sales_df = sales_df.sort_values('ds')
model = Prophet()
model.fit(sales_df)
future = model.make_future_dataframe(periods = periods)
forecast = model.predict(future)
figure = model.plot(forecast, xlabel = 'Date', ylabel = 'Sales')
figure2 = model.plot_components(forecast)
Prophet 함수 적용 시 주의해야할 점이 있습니다.
Date 데이터의 경우, 열 이름을 'ds'로 결과 값을 들고올 데이터의 경우 'y'로 변경해주어야 합니다.
6. 결과보기
이제 데이터를 적용시켜보도록 하겠습니다.
sales_predictions(df, 365)
365는 365일에 대해 예측해달라는 뜻입니다.
Prophet 라이브러리는 3개의 그림을 보여줍니다.
첫 번째 예측데이터입니다.
분홍색 박스 내에 있는 검은 점들이 실제 값입니다.
앞으로 블로그를 지금처럼 꾸준히만 한다면 방문자수는 증가할 것으로 예측해줍니다.
현재 방문자수 데이터로는 극적인 일평균 방문자를 제시해주지는 않네요
하지만 매일매일 증가한다고 생각하니 감사할 따름입니다.
다음으로 보여주는 데이터는 트렌드입니다.
방문자수가 매달매달 증가할 것으로 보여주네요
데이터가 단순하기도 했고, 블로그 특성 상 저품질이 아니라면, 블로그 업로드 수를 늘릴수록 방문자가 늘기는 할 것 같습니다.
아무튼 블로그 작성하는 게 노력 대비 아웃풋이 거의 없다싶이 해서 힘이 빠지는 작업인데, 이런 예측 그래프를 보여주니 행복하네요
마지막 그래프는 요일별 방문자수 데이터입니다.
제 블로그는 평일과 주말이 명확하게 구분되는 블로그네요
아무래도 엑셀과 파이썬을 주로 다루다보니, 직장인 분들께서 많이 보시고, 주말에는 안보시는 게 주된 요인이 아닌가 싶습니다.
이 정도의 데이터는 사실 Prophet 함수가 아니더라도 티스토리에서도, 구글 애널리틱스에도 충분히 볼 수 있는 데이터가 아닌 가 싶습니다.
아무쪼록 많은 분들이 미래예측에 도움되시는 라이브러리 알아가시길 바랍니다.
'파이썬(Python)' 카테고리의 다른 글
[Pandas활용] pd.cut / pd.qcut을 이용하여 빈도수 확인하기 (0) | 2023.05.01 |
---|---|
[Python] Jupyterlab 자동 괄호닫기, 따옴표 닫기 설정 (0) | 2023.01.27 |
[파이썬/Python] '아바타2 : 물의 길' 댓글 수집 및 리뷰 분석해보기 (0) | 2023.01.03 |
[Python/파이썬] 구글이미지 크롤링 (무한스크롤) (0) | 2023.01.02 |
[파이썬/Python] 파이썬으로 폴더 내 엑셀파일 한번에 통합하기 (0) | 2022.11.22 |
댓글