News & Events
시계열 모델을 사용하여 암호 화폐 동향 예측하기
* 이 글은 medium에 작성된 MarcoSantos의 글을 번역하였습니다.
미래를 예측하는 것은 쉬운 일이 아니다. 많은 사람들이 시도했고 많은 사람들이 실패했다. 하지만 많은 사람들은 미래에 무슨 일이 일어날지 알고 싶어할 것이고 그것을 알아내기 위해 많은 노력을 할 것이다. 미래에 어떤 일이 일어날지 알 수 있으면 얼마나 좋을까! 2012년 비트코인이 15달러 미만이었을 때 18,000달러를 넘어설 것이라는 사실을 알고 무엇을 했을지 상상해 보자! 많은 사람들이 그 당시에 비트코인을 사지 않은 것을 후회할 수도 있지만, 애초에 그들이 어떻게 알 수 있었을까? 이것이 현재 암호 화폐와 관련하여 우리가 직면하고 있는 딜레마이다. 우리는 다음 가격 상승을 놓치고 싶지 않지만 언제 그것이 일어날지 혹은 일어나지 않을지 모른다. 그렇다면 우리는 어떻게 잠재적으로 이 딜레마를 해결할 수 있을까? 어쩌면 머신 러닝이 우리에게 답을 알려줄 수 있을지도 모른다.
머신 러닝 모델은 우리에게 암호 화폐의 미래에 대해 배우는 데 필요한 통찰력을 줄 수 있다. 머신 러닝은 우리에게 미래를 말해 주지는 않겠지만 가격이 움직일 것으로 예상하는 일반적인 추세와 방향을 말해 줄지도 모른다. 이러한 머신 러닝 모델을 우리에게 유리하게 사용해 보고 파이썬으로 코딩하여 비트코인의 미래를 예측해 보자!
시계열 모델링
우리가 구현할 머신 러닝 모델은 시계열 모델이라고 불린다. 이 모델들은 과거를 조사하고 미래를 예측하는 패턴과 추세를 찾는다. 이러한 모델들이 없다면, 우리는 모든 분석들을 스스로 해야 할 것이고 너무 많은 시간이 걸릴 것이다. 다행히도 우리는 파이썬에 이 시계열 모델들을 프로그래밍해서 모든 일을 할 수 있다. 이것이 바로 오늘 우리가 할 일이다!
오늘 사용할 시계열 모델은 SARIMA와 Facebook Prophet가 구현한 가법 모형이다. SARIMA 또는 ARIMA는 비교적 기본적인 시계열 모델로, 필요할 때 코드화하고 구성 요소를 설명한다. Facebook Prophet은 빠르고 조정 가능한 시계열 데이터를 예측하기 위해 가법 모형을 사용한다. 모델링 후, 우리는 비트코인의 미래에 대한 각 모형의 고유한 통찰력의 결과를 비교할 것이다.
SARIMA를 모델링하는 단계는 다음과 같다.
- 데이터를 수집, 탐색 및 시각화한다.
- 데이터를 차분하고 정상성을 확인한다.
- 차분 데이터에 대한 ACF 및 PACF를 표시한다.
- 최적의 매개 변수를 서치하여 모델링을 시작한다.
- 최적화된 매개 변수를 사용하여 모델을 교육하고 테스트한다.
- 미래 예측하기
위의 설명은 매우 짧고 간단하지만 곧 각 단계에 대해 자세히 살펴볼 것이다. 다음 코드들은 포스팅 마지막에 공유된 Github에서 가져온 것이다.
비트코인 가격 데이터
우리가 가장 먼저 해야 할 일은 야후 파이낸스에서 편리한 CSV 파일로 다운로드 받을 수 있는 비트코인의 과거 데이터를 검색하는 것이다. 일단 CSV 파일을 Pandas DataFrame으로 포맷하는 것으로 시작할 수 있다. 그런 다음 나머지 플롯 및 계산에 동일한 DataFrame을 사용한다.
다음으로 우리는 지난 2년간 비트코인의 가격 움직임을 보기 위해 dataframe을 플롯한다. 지난 2년은 비트코인, 그리고 일반적으로 암호 화폐가 큰 인기를 끌면서 현재 시장 트렌드를 더 잘 대변하고 있기 때문에 선택되었다.
정상성
모델링을 위한 데이터를 준비하자. 우리는 Dickey-Fuller 테스트라고 불리는 것을 사용하여 단순히 데이터와 정상성을 테스트함으로써 이를 수행한다. 우리는 5% 미만의 P-밸류를 목표로 하거나 가능한 한 0에 근접하려고 노력하고 있다. P-밸류가 더 낮은 경우에도 가격 로그를 가져온 다음 가격만 차분하는 대신 로그를 차분한다.
여러분들은 우리가 왜 정상성에 신경을 쓰는지 궁금할 것이다. 간단히 말해서, 정상성은 우리의 모델에 방해가 될 수 있는 데이터 세트에서 추세를 제거한다. 기본적으로 정상성은 우리의 모델들이 더 나은 성능과 예측을 하도록 만든다.
ACF와 PACF
다음에는 자기 상관 함수(ACF)와 부분 자기 상관 함수(PACF)를 표시해야 한다. 일일 데이터로 작업 중이기 때문에 ACF는 과거의 어느 요일이 현재 요일과 가장 많은 상관 관계를 보이는지를 보여준다. PACF는 과거의 어느 날이 현재의 날과 직접적인 상관관계가 있는지를 그 사이의 날들을 무시함으로써 보여준다.
SARIMA 모델링
PACF와 ACF를 알면 데이터 세트와 잠재적으로 선택할 수 있는 매개 변수를 더 잘 이해할 수 있다. 이제 SARIMA 모델을 사용하여 데이터를 모델링할 수 있다.
매개 변수 최적화
모델에서 최상의 성능을 얻으려면 최적의 매개변수를 찾아야 한다. 우리는 다양한 매개 변수 조합을 시도하고 AIC 스코어가 상대적으로 낮은 매개 변수를 선택하여 이를 수행한다. 걱정하지 않아도 된다. 우리가 이렇게 할 수 있는 함수를 작성하였다.
According to this function, our best parameters are (1,0,0) for pdq and (0,0,0,0) for pdqs
컴퓨터에 따라 최적의 매개 변수를 찾는 프로세스에 시간이 걸릴 수 있다. 우리 같은 사람들은 컴퓨터 사양에 따라 제한된 최적의 매개 변수에 만족해야 한다. 안타깝게도 모든 컴퓨터가 동일한 것은 아니며 일부 모델은 해당 모델을 실행하는 컴퓨터에서 성능이 더 우수하다.
적합과 훈련
이제 우리의 매개 변수가 생겼으니, 비트코인 가격에 맞춰 모델을 교육해 보자.
모델의 성능을 테스트하기 위해, 우리는 예측이 우리가 이미 알고 있는 값과 어떻게 일치하는지 그 값을 플롯하여 확인할 수 있다.
실제 값이 여전히 신뢰 구간 내에 있고(회색으로 음영 처리됨) 예측한 대로 가격이 상승하기 때문에 모형에서 검정을 수행할 수 있다. 나머지 훈련 데이터는 구간(녹색 음영)에 적합하고 모형의 예측 값에 따라 정렬된다.
미래 가격 예측
이제 우리는 비트코인의 미래 가격을 예측하기 위해 정말 알고 싶은 부분으로 갈 수 있다. 오늘 가격으로부터 미래의 가격이 어떻게 될 것인지 예측한다.
좀 더 자세히 살펴보자
모델에 따르면 비트코인은 다음 달에도 소폭 상승세가 이어질 것으로 보인다. 하지만, 이것을 사실로 받아들이면 안된다. 음영진 지역은 비트코인의 가격이 다음 달에 어디로 갈지 우리에게 보여주지만, 그것은 또한 비트코인이 잠재적으로 하락할 수 있다는 것을 보여준다. 다만 모델은 하락 대신 가격 상승 쪽으로 기울고 있는 것으로 보인다.
SARIMA의 예측만 고려해서는 안 된다. 고려해야 할 다른 시계열 모델과 절차가 있으며 그 중 하나는 실제로 Facebook의 데이터 사이언스 팀에 의해 만들어졌다!
Facebook Prophet
Facebook Prophet을 사용하는 것은 SARIMA와 함께 모델링하는 것보다 상대적으로 더 쉬울 것이다. Prophet의 단순함과 사용 편의성 때문이다. SARIMA에 비해 얼마나 쉬운지 볼 수 있다.
Facebook Prophet을 사용하는 단계는 다음과 같다.
- Prophet의 데이터 형식을 지정한다.
- 모형을 데이터에 적합하고 훈련한다.
- 예측할 미래 날짜를 만든다.
- 미래를 예측하고 시각화하자!
다음은 Facebook Prophet에 대한 위의 단계를 사용하는 코드이다.
먼저 날짜와 가격에 대해 두 개의 열을 만들어 이전 데이터를 포맷한다. 그런 다음 데이터를 적합하고 훈련함으로써 모델링에 바로 뛰어들 수 있다! 매개 변수를 튜닝하거나 정상성 상태를 확인할 필요가 없다!
모델 제작 후, 우리는 먼저 Prophet이 우리에게 가격을 예측하기를 원하는 미래 날짜를 만들어 미래 예측으로 발전할 수 있다. 또한 이러한 날짜를 그림으로 표시하여 모델이 과거 값에 비해 어떻게 쌓이고 다음에 가격이 어디로 갈지도 보여준다.
- 파란색 선 = 예측 값
- 검은 점 = 관찰된 (실제)값
- 파란 음영 지역 = 불확실성 간격
페이스북 Prophet에 따르면, 비트코인은 다음 달에 상승할 것이다. 다시 말하지만, 이것은 사실이 아니다. SARIMA와 비교했을 때, 페이스북 Prophet는 더 명확한 예측과 방향을 가지고 있다. 페이스북 Prophet는 실험할 수 있는 특징과 매개 변수가 훨씬 더 많지만, 우리는 이 모든 것을 다 살펴보지는 않았다. 모델을 변경해야 할 것 같으면 여기를 클릭하여 페이스북 Prophet의 문서를 참조하자.
맺음말
이제 비트코인의 미래에 대한 두 가지 예측이 나왔으니, 비트코인의 미래를 결정하기 위해 두 가지 모두에 대한 자신만의 독특한 관찰을 자유롭게 만들어 보자. SARIMA와 FB Prophet 외에도, 배우고 실험할 수 있는 시계열 모델이 더 많이 있다. 이 두 가지에만 국한되면 안된다! 우리는 단지 시계열, 모델링 및 머신 러닝에 대한 간략한 개요를 수행했다. 취재하고 연구해야 할 주제들이 더 많이 있다!
비트코인의 미래를 예측하는 것은 불가능에 가깝지만, 머신러닝으로 우리는 비트코인이 어디로 갈지 높은 신뢰도로 이해할 수 있다. 이러한 머신 러닝 모델을 사용하여 투자 결정을 내리는 것은 제안하지 않겠지만 비트코인과 암호화폐의 미래를 보는 것은 좋은 일이다!
번역 – 핀인사이트 인턴연구원 강지윤(shety0427@gmail.com)
원문 보러가기>
https://towardsdatascience.com/predicting-prices-of-bitcoin-with-machine-learning-3e83bb4dd35f