요즘 비트코인의 열풍이 대단합니다. 전 뭐 인형 뽑기조차 무서워하는 소심한 캐릭터라 별관심이 없었는데, 그래도 주변에서 많이들 하시고, 또 많이들 수익을 얻었다고 하니 살짝 뉴스를 좀 찾아 읽어보는 수준이었죠^^. 그러다가 문득 요즘 제가 관심있어하는 데이터 사이언스 관련해서 연습용으로 한 번 다뤄볼까하는 생각을 하게 되었습니다. 그래도 명색이 데이터 사이언스 관련 책인 파이썬으로 데이터 주무르기[바로가기]도 쓴 데이터 사이언스 저자인데 말이죠^^. 그래서 책에서도 소개했지만, Selenium[바로가기]과 fbprophet[바로가기]을 이용해서 비트코인 시세 예측을 한 번 시도해 보았습니다. 두 모듈 모두 제가 블로그에서 다루기도 헀지요^^.
먼저 비트코인의 시세 데이터는 위 Bitcoincharts라는 사이트[바로가기]에서 얻을 겁니다.
위 사이트는 저렇게 기간을 지정하면 데이터를 차트로 보여주는데요...
밑으로 스크롤하면 Raw Data도 같이 보여줍니다. 제가 원하는 데이터이죠^^
저렇게 Korbit이라고 하고, 기간을 정해주면 접근 홈페이지 주소가 잘 나타납니다.
저걸 이용해서 접근하는 거죠^^ 저기까지만 되면 사실 Beautiful Soup[바로가기]만 사용해도 충분한데요. Raw Data를 클릭하는 화면으로 접근하는게 살짝 힘들어서 그냥 편안하게 Selenium으로 가려는 거죠^^
필요한 모듈을 부릅니다. 흠... numpy는 필요없었는데ㅠㅠ. fbprophet과 selenium의 설치는 이 글 초반에 링크걸어들인 곳으로 가시면 됩니다.^^.
드라이버 호출~~~
접근 URL을 2년짜리 데이터로 접근하죠^^
그럼 저렇게 사이트가 나타납니다. 크롬드라이버는 참 좋아요^^. 그런데... 아까 이야기한 Raw Data를 펼치는 메뉴가 가려져 버렸네요...
그 메뉴가 보일때까지 스크롤해서 내려가서 클릭하라는 의미를 가지고 있습니다.
그러면 저렇게 펼쳐지는 거죠^^
Beautiful Soup으로 테이블만 읽습니다.^^
짠~~~^^ pandas가 제공하는 read_html 명령을 사용하면 한 방에 테이블을 가져와 버립니다. ㅋㅋ^^
한 번 그려보았습니다. 뭐... 요즘의 열기를 반영하고 있네요^^
fbprophet을 가동시킵니다. 딱 세줄^^
그리고 forecast를 보고 싶은거죠^^ 30일 정도만 요청합니다.^^
짠~~~ 흠.. 어쩌면 2월에는 약간 정체기를 예상하는 걸까요^^
트렌드와 연간, 주간 분석을 시작해보죠.. 트렌드는 뭐 예상하는 그 모양 그대로구요...
한가지 희한한게.. 주간 분석에서 나타난... 저 목요일~.. 물론 prediction이기 때문에 약간 어그러지고, 또 항상 그렇다고 할 수도 없고, 또 2년중에서 최근 몇 개월이 워낙 요동쳐서 딱 맞지는 않겠지만, 일주일 중에서 목요일이 가격이 높네요... 희한합니다. 이쯤되면 눈으로 확인하러 가야죠^^
흠.. 7월 13일, 20일, 27일... 주변 날짜에 비해 높은 편입니다. 가장 높진 않을 수 있지만 말이죠.. 아 Close 기준입니다.
8월 17일도 주변 날짜에 비해 높네요. 8월 24은 8월 25일 보다는 낮지만, 그 주에서는 높은 편입니다. 분석 결과, 목, 금이 다른 요일보다 높다고 나오니까요^^
호.. 신기하네요... 일주일 중에 목요일과 금요일이 대체로 시세가 높네요... 뭘까요?^^.
아무튼.. 장난삼아, 연습삼아 수행한... 비트코인 시세 분석입니다.^^
- 먼저, 이런 글은 데이터 사이언스 측면에서 forecast 연습삼아 수행한 것으로 절대 신뢰성이 없습니다. 절대 ~~
- 그 와중에 뭔가 결론을 내면
- 2년간 데이터를 보니 11월이 가장 낮았습니다.
- 그 속에서 일주일 중에는 신기하게도 목요일이 가장 높은 시세를 유지한 적이 많았습니다.
- 앞으로 30일은 답보상태일 수 있을 것 같습니다.^^
'Theory > MachineLearning' 카테고리의 다른 글
전처리와 학습 과정을 하나의 과정으로 실행하는 sklearn의 pipeline (10) | 2020.04.06 |
---|---|
머신러닝을 이용한 Human Activity Recognition 실습 (12) | 2019.10.29 |
Scikit Learn을 이용한 라벨인코딩 - LabelEncode (6) | 2019.09.30 |
Scikit Learn (sklearn) SGDRegressor 사용할 떄 Loss 그래프 확인하는 방법 (10) | 2019.09.23 |
결정트리를 이용한 타이타닉 생존자 예측 (26) | 2018.07.02 |
주가 예측? 나도 해보자~ Forecast 수행에 적합한 Prophet (20) | 2017.08.03 |