상세 컨텐츠

본문 제목

비트코인 가격 예측2

프로그래밍/경진대회(데이콘, 캐글)

by 아싸호랑나비 2022. 10. 10. 18:50

본문

1편

https://nanke.tistory.com/131

 

새로운시각

1편마지막에서 절망을 하고 끝났었는데

구글링을 하던중 좋은 글을 발견했다 감탄하면서 읽고있는데 코딩애플님 페이지라 놀랐다

 

https://codingapple.com/unit/deep-learning-stock-price-ai/

 

LSTM가격예측 모델에 있어서 다음 날 가격을 맞추는 가장 좋은 방법중 하나는

전날과 같게 예측하는것이라는 말에 큰 깨달음을 얻었다 

 

마치 테트리스를 하는봇이 지지말라는 임무를 받자 게임시작하자마자 퍼즈를 걸고 영원히 풀지않는 느낌이랄까

 

가격을 label로 삼는건 좋지않은 생각일지도 모른다는 생각이 들었다

 

몇퍼센트 오르는지 예측을 하는 방식을 시도해볼까

아니면 롱(1) 숏(0) 형태의 분류문제로 접근해야할까

 

아무래도 두개다 해봐야할것같다

 

피쳐들

일단 그대로 쓴상태에서 결과를 확인후

각종 기술적분석 지표들 추가한후 결과가 좋아졌나 확인

그외 비트코인가격에 영향을 주는 요소들을 검색

 

s&p 지수및 금 가격과 상관관계 관한 뉴스

https://zdnet.co.kr/view/?no=20220908133750 

<비트코인 가격의 결정요인>-논문

https://www.e-kjfs.org/upload/pdf/KJFS-2019-08-48-4-393.pdf

 

업비트 비트/원화 차트를 볼필요는 없지만 현재는 모듈을 통한 데이터불러오기가 쉬워서 사용중인 관계로

환율도 영향을 받을것같다

 

생각만 해놓고

일단 여러가지 피쳐들을 넣어보는건 일단 다음에 해보자

 

------------------20221011-------------------

일단 가격으로만 피쳐를 구성한뒤 lstm을 활용한 딥러닝을 진행해보겠습니다

change 컬럼들은 피쳐로서 어제에 비해서 오늘 어느정도 비율로 등락했는지를 보여줍니다

예) 어제 시가 1000 오늘 시가 1200 => 0.2

 

이 데이터로 lstm을 적용해보자

 

loss가 심상치않다 나 머 잘못했나 하아... 

----------------------------------------------------------------

 

  • 정상적이지 않은 모델의 학습은 정규화를 진행했더니 해결되었다

 

  • 레이블을 롱숏 이진분류로 바꿨다

문제 발생

test데이터를 예측한 결과를 보고 놀랐다

모델이 모든 데이터를 1로 예측했다 

이건좀....

 

이 결과에 대한 원인은 두가지로 추측된다

1. 딥러닝에 익숙하지않은 내가 모델링을 잘못해서 정상적인 학습이 이루어지지않았다

2. 가격을 예측할수있는 제대로된 피쳐를 공급하지 않았다

 

머신러닝 모델로 접근

이번엔 그래서 머신러닝 모델로 돌려본다 

만약 이번에 레이블이 그래도 성능과는 관계없이 그래도 정상적으로 나온다면 

아마 문제의 원인은 1번이라는 뜻일것이다

 

머신러닝결과

StratifiedKFold를 사용하였다

오늘이 어제에 비해 얼마나 올랐는지만을 가지고 내일 오르는지 내리는지를 예측한것치고 잘맞춤

그렇다 lstm에서 제대로된 결과가 나오지않은것은 그냥 내가 모델을 제대로 안만든것같다

아무리봐도 딥러닝은 너무 불친절하고 머신러닝은 친절하며 사용도 간편하다

feature importance도 한번봐보자

예상대로 전날 종가가 얼마나 올랐는지가 가장 중요한 항목으로 뽑혔다 2위와 별차이는 안나지만

대충 오늘 많이올랐으면 내일도 오르겠지 이런식으로 예측하지 않을까싶다

 

이제 피쳐를 추가해보자 이제와 생각해보니 내가너무 어렵게 접근했나 싶기도하다

관련글 더보기