[Python!] 지옥으로 가는(?) 비트코인 가격을 예측해보자.

in #kr6 years ago (edited)



illustration by @carrotcake


Prophet를 이용한 비트코인 가격 예측

이번 시간에는 지옥으로(?) 가고 있는 비트코인의 가격을 예측해 볼 계획입니다. 저는 예언 능력이 눈꼽만치도 없으니, 지난번처럼 예언자라 이름 붙은 페이스북의 Prophet을 이용해 보겠습니다.

비트코인 데이터는 여러 곳에서 제공하는데 야후 파이낸스에서 비트코인 가격 데이터를 제공하기 때문에 여기에서 가져오겠습니다. BTC-USD 가격입니다.

야후 파이낸스

파이썬에서 가져오는 명령어는 다음과 같습니다.

BTC = web.DataReader('BTC-USD','yahoo',start,end)

입력

import warnings
warnings.filterwarnings("ignore")
import pandas as pd
import pandas_datareader.data as web
import numpy as np
import matplotlib.pyplot as plt
%matplotlib inline
from datetime import datetime
from fbprophet import Prophet

start = datetime(2010, 1, 1)
end = datetime(2018, 11, 19)

BTC = web.DataReader('BTC-USD','yahoo',start,end)
BTC.head()

입력/출력 화면

스크린샷 2018-11-19 오후 8.56.02.png
2010년 7월 16일부터 가격이 있네요. 비트코인 시세 0.05달러. 1 BTC가 55원 정도 했나 봅니다.

그래프를 그려보겠습니다.

입력

BTC['Close'].plot(figsize=(12,6), grid=True);

입력/출력 화면

스크린샷 2018-11-19 오후 8.57.24.png

급등했다가 급격하게 장렬하게 추락하고 있습니다. 시계열 ds와 종가 y만 정리합니다.

입력

df = pd.DataFrame({'ds':BTC.index, 'y':BTC['Close']})
df.reset_index(inplace=True)
del df['Date']
df.head()

m = Prophet(daily_seasonality=True)
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);

입력/출력 화면

스크린샷 2018-11-19 오후 9.00.25.png

이렇게 떨어지고 있는데, 올라간다고 나오는군요. 그동안 계속 오르는 추세였으니까 그런 것 같습니다. 이것만 보고 희망회로를 돌리면 안되기 때문에 입력 기간을 바꾸어 보겠습니다.

전망2

비트코인 가격 데이터를 2013년 1월 1일부터 입력한 결과입니다. 추세가 길지 않으니 더이상 상승하는 걸로만 나오지는 않는군요. 2015년 1월 1일부터 입력하면 또 다르게 나오겠죠?

스크린샷 2018-11-19 오후 9.03.21.png

전망3

2015년부터의 데이터를 이용하면 하락하는 추세로 나옵니다. 심지어 제로를 넘어 마이너스로 향하는... (이것이 진정한 지옥?)

입력 데이터를 어떻게 사용하느냐에 따라 저마다 다른 결과가 나오는데, 예측이란 게 얼마나 쉽지 않은 일인지 조금이나마 느껴집니다.

스크린샷 2018-11-19 오후 9.06.27.png

prophet한테 이런 예측을 맡겨도 되는 건가 싶습니다.

Sort:  

과거 데이터를 바탕으로 임의의 패턴을 만들어내는것 뿐이니까요. 큰의미를 부여할 필요는 없다고 봅니다~

ㄷㄷ마이너스라니....
현실이 되지는 않겠죠? 아마...

Congratulations @yoon! You have completed the following achievement on the Steem blockchain and have been rewarded with new badge(s) :

You published a post every day of the week

Click here to view your Board of Honor
If you no longer want to receive notifications, reply to this comment with the word STOP

To support your work, I also upvoted your post!

Do not miss the last post from @steemitboard:

Meet the Steemians Contest - The results, the winners and the prizes
Meet the Steemians Contest - Special attendees revealed
Meet the Steemians Contest - Intermediate results

Support SteemitBoard's project! Vote for its witness and get one more award!

짱짱맨 호출에 응답하여 보팅하였습니다. 꾸준한 활동을 응원합니다.

북이오(@bukio)는 창작자와 함께 하는 첫번째 프로그램을 만들었습니다. 이를 위해 첫번째 길드(Guild) 구성을 위한 공지글을 게시하였습니다. 영문 문학작품의 한글 번역에 관심이 있는 분들의 많은 참여를 바랍니다. 고맙습니다.

Hi @yoon!

Your post was upvoted by @steem-ua, new Steem dApp, using UserAuthority for algorithmic post curation!
Your UA account score is currently 4.667 which ranks you at #1629 across all Steem accounts.
Your rank has dropped 58 places in the last three days (old rank 1571).

In our last Algorithmic Curation Round, consisting of 286 contributions, your post is ranked at #52.

Evaluation of your UA score:
  • Some people are already following you, keep going!
  • The readers like your work!
  • Good user engagement!

Feel free to join our @steem-ua Discord server

prophet한테 스팀잇도 전망도 물어봐주세요~~ㅎㅎ
넘 재미있습니다.ㅋㅋ

알겠습니다 ^^

감사합니다.ㅋ