기계 학습이 암호 화폐 가격을 예측할 수 있을까? 조각 보간법을 예로 들어 분석하다
이 글은 암호화谷Live에 게시되었으며, 저자: Michel Kana, 번역: Jeremy입니다.
이 실용 가이드는 암호화폐 가격이 급등할 것이라는 예측에 필요한 기초 지식을 제공합니다.
15년 전, 저는 디지털 화폐의 세계를 탐구하기 시작했으며, 문자 메시지만 사용하는 P2P 이동 통화 플랫폼의 프로토타입을 만들었습니다.
최근, 제 동료 중 한 명이 저에게 인공지능이 암호화폐 가격을 예측할 수 있는지 물었습니다. 그녀는 블록체인에 대한 과대 광고에 호기심이 있었습니다.
조사 후, 저는 암호화폐 가격 예측이 해결할 수 있는 문제라는 것을 발견했지만, 모든 시장 조건에 적용될 수는 없다는 것을 알게 되었습니다.
암호 자산의 전형적인 예측 모델은 시계열 예측(예: ARIMA, Facebook Prophet), 머신러닝(예: 랜덤 포레스트 알고리즘, 선형 회귀) 또는 딥러닝 방법(예: LSTM)을 활용합니다.
이 글에서는 주어진 날짜의 라이트코인 평균 가격을 예측할 때 조각 보간의 성능이 어떻게 되는지 살펴보았습니다.
데이터
우리는 2013년 4월부터 2021년 2월까지의 라이트코인 역사 가격에 집중할 것입니다. 이 데이터는 coinmarketcap에서 가져온 것이며 무료로 사용할 수 있습니다. 데이터를 80%의 훈련 데이터 세트와 20%의 테스트 데이터 세트로 나누었습니다. 후자는 우리가 종가를 예측하는 정확성을 평가하는 데 사용됩니다.
암호화폐 라이트코인의 가격 역사 (출처: Kaggle)
짧은 탐색적 데이터 분석 결과, 평균 종가는 연초와 연말에 가장 높고, 10월에 가장 낮다는 것을 보여주었습니다.
다항 회귀
다항 회귀에 대해 들어본 적이 있을 것입니다. 이는 비선형 함수(우리의 경우 암호화폐 가격 변동)를 근사하기 위해 차수가 d인 기초를 만드는 가장 간단한 예입니다.
저는 라이트코인의 역사 가격에 대해 간단한 다항 회귀를 수행했으며, 차수 5, 25, 80을 사용했습니다. 각 경우에 대해 R2 값은 모델이 테스트 데이터 세트에 얼마나 잘 맞는지를 알려줍니다.
아래의 파란 선과 훈련 데이터의 적합도를 보면, 다항 차수가 증가함에 따라 곡선이 점점 가파르게 변하는 것을 관찰할 수 있습니다. 이는 모델의 복잡성이 증가하기 때문이며, 고차 다항식이 훈련 세트의 모든 단일 데이터 포인트를 추적하려고 시도하기 때문입니다.
0일은 2013년 4월 30일을 나타내고, 2800일은 2021년 2월 28일을 나타냅니다.
특히 이상치가 있는 영역(그래프의 중간 부분)에서는 고차 다항식이 이러한 이상치 방향으로 발전하는 경향이 있습니다. 따라서 80차 다항식 모델은 가장 높은 분산을 가집니다.
훈련 데이터에서의 편차도 가장 낮으며, 이는 가장 높은 R2 값으로 나타납니다. 반면, 저차 다항식의 R2 값은 더 낮아 더 높은 편차와 더 낮은 분산을 의미합니다. 저차 다항식은 훈련 데이터에 대한 민감성이 낮습니다.
조각 보간
저는 암호화폐 가격을 예측하기 위해 조각 다항식을 사용하는 것이 더 유연한 방법이라는 것을 발견했습니다.
조각 보간은 낮은 차수의 다항식으로 많은 데이터 포인트를 적합시킵니다. 우리는 낮은 차수의 다항식만 사용하기 때문에 과도한 진동과 비수렴성을 제거할 수 있습니다.
주어진 데이터 포인트 집합에 대해 조각 보간의 작동 원리는 각 데이터 부분에서 서로 다른 다항식을 사용하는 것입니다.
특히, 우리는 연결된 조각 다항식, 즉 스플라인을 사용합니다.
스플라인의 한 예는 아래의 절단 선형 함수입니다. 이는 4의 왼쪽에서 평평하며, 이를 함수의 결이라고 합니다.
몇 개의 결점을 주어진 후, 우리는 여러 선형 기저 함수를 조합하여 비선형 데이터에 적합시킬 수 있습니다.
암호화폐 가격에서 존재하는 고차 곡선 관계를 감지하기 위해, 저는 절단된 세 번째 함수, 즉 세 번째 스플라인을 사용했습니다.
세 번째 스플라인을 사용하여 데이터를 조각으로 나누고 각 조각에 대해 세 번째 스플라인을 적합시킵니다. 각 스플라인 함수는 결점에서 다음 함수와 연결됩니다.
세 번째 스플라인은 암호화폐 가격 변동에 매우 적합한 선택입니다. 왜냐하면 연결이 매끄럽기 때문입니다. 세 번째 스플라인의 기울기와 첫 번째 및 두 번째 도함수는 모두 일치합니다. 세 번째 스플라인은 3차 다항식 함수로, 여전히 충분히 작아 차별성을 피할 수 있습니다.
세 번째 B-스플라인은 세 번째 스플라인의 더 쉬운 변형으로, 효율적인 계산을 위해 최대 5개의 기저 함수가 보간에 기여합니다. 아래에서 우리는 라이트코인 가격에 대한 세 번째 B-스플라인의 성능을 볼 수 있으며, 결점을 사분위수에 배치한 후의 결과입니다.
결점을 수동으로 선택함으로써, 즉 데이터 포인트가 많은 경우, 사분위수에 따라 결점을 배치했을 때의 값과 비교하여 테스트 데이터 세트에서 더 나은 R2 값을 달성했습니다.
경계 근처의 세 번째 스플라인은 이상하게 작동할 수 있으며, 위의 빨간 그래프에서 이를 확인할 수 있습니다. 소위 자연 세 번째 스플라인은 각 극한에서 세 번째 다항식을 선형으로 변경하여 극한 결점 밖에서 함수가 선형이 되도록 강제합니다.
자연 세 번째 스플라인은 자유도를 선택해야 합니다. 라이트코인의 가격에 대해, 저는 교차 검증을 통해 최적의 자유도를 찾았습니다: 예측기의 날짜로 적합한 174개의 결점을 선택했습니다. 결과적으로 세 번째 B-스플라인과 비교하여 경계의 차별성이 더 작지만, 테스트 데이터 세트의 R2는 약간 떨어집니다.
마지막으로, 저는 가격 변동에 대한 패널티를 부여하면서 평균 제곱 오차를 최소화하는 매끄러운 스플라인을 구현했습니다.
매끄러운 스플라인은 라이트코인 가격에 가장 적합한 조각 보간으로 보입니다. 이 모델은 테스트 데이터 세트에서 지금까지 얻은 최고의 R2 값을 달성했습니다.
세 번째 스플라인 모델의 흥미로운 부분은 훈련 모델 데이터 범위를 넘어 추론하는 방법입니다.
예측 및 시계열 작업으로 유명한 저명한 통계학자 Rob Jhyndman에 따르면, 세 번째 매끄러운 스플라인 모델은 ARIMA 모델과 동등한 모델로서 예측에 사용할 수 있지만, 그 매개변수 공간은 제한됩니다. Rob은 스플라인 모델이 매끄러운 역사적 추세와 선형 예측 함수를 제공한다고 주장합니다.
저는 여러분이 이 아이디어를 더 실험해 보기를 초대합니다. 제 컴퓨터 코드는 온라인에서 Jupyter Python/R Notebook 형식으로 확인할 수 있습니다.
이 글에서 사용된 Google Colab Notebook
디지털 화폐와 암호화폐, 예를 들어 라이트코인은 현대 글로벌 경제에서 가장 논란이 많고 복잡한 기술 혁신 중 하나입니다. 이 글은 세 번째 스플라인을 사용하여 라이트코인 가격 변동을 예측하는 덜 알려진 방법을 사용하고자 합니다.