제퍼넷 로고

Crypto ML 웹 앱 구축

시간

프로젝트 개요

이 프로젝트는 블록체인 데이터, 기계 학습 및 클라우드 관리 서비스를 웹 앱으로 최종 제품에 결합합니다. Ethereum 데이터는 GCP 공개 데이터 세트로 제공됩니다.

웹 앱은 사용자 인터페이스에 입력된 이더리움 주소의 투자자 프로필(클러스터)을 예측합니다. 이는 데이터 원본에서 추출된 세 가지 기능을 기반으로 합니다. 현재 잔액, 고유 전송 및 보유 고유 토큰.

금융 용어로는 투자자 프로필 투자 결정에 대한 개인의 선호도를 정의합니다. 이에 대한 예로는 위험 회피/위험 허용, 자산 클래스 및 개별 자산의 다양성, 성장주 또는 가치주에 대한 투자 등이 있습니다. 서로 다른 이더리움 주소 사이.

데이터는 BigQuery에서 사용 가능 사용할 준비가 되었습니다. 문제는 데이터를 모델링하고 이를 사용하여 ML 모델에 공급하는 것입니다. 데이터에 레이블이 지정되어 있지 않으므로 문제가 다음과 같이 공식화됩니다. 감독되지 않은 기계 학습 작업. 가격 데이터에 더 쉽게 액세스하고 수익을 창출할 수 있기 때문에 대부분의 암호화 기계 학습 프로젝트는 이를 예측하는 데 중점을 둡니다.

한편, 이 프로젝트는 개별 주소(투자자)의 행동 발자국에 초점을 맞추고 사용 가능한 거래 데이터를 기반으로 클러스터링합니다.

AWS의 클라우드 서비스는 웹 UI에서 모델을 제공하는 데 사용되었습니다. 모든 기계 학습 단계를 위한 AWS SageMaker 및 모델을 예측 엔드포인트로 제공합니다. 그런 다음 API Gateway를 사용하여 배포된 API 엔드포인트를 통해 Lambda 함수로 트리거됩니다. 이 엔드포인트는 웹 UI에서 이더리움 투자자 프로필을 예측하는 데 사용됩니다.

문제 설명

퍼블릭 블록체인의 데이터는 공개되어 있지만 이를 활용하는 기계 학습 애플리케이션은 아직 많지 않습니다(가격 예측 제외). 그 이유 중 하나는 기본 데이터 구조가 OLAP와 달리 분석하기 어려운 OLTP 시스템을 기반으로 하기 때문입니다.

퍼블릭 블록체인에서 실행되는 모든 트랜잭션에 대해 분석할 수 있는 추적이 있습니다. 다른 자산 클래스와 달리 개인 투자자의 행동에 대한 데이터를 사용할 수 있습니다. 프로젝트의 목표는 다음 질문에 답하는 것입니다.

BYOD(bring your own data) 원칙을 사용하고 제공된 주소로만 이더리움 투자자를 클러스터링할 수 있습니까?

문제의 복잡성을 고려할 때 반드시 통찰력 있는 결과를 얻을 것으로 기대하지 않았습니다. 현재 거의 100억 개의 고유한 이더리움 주소 매우 다양합니다. 목표는 실행 가능한 솔루션을 구축하는 것이었습니다. 이를 위해서는 몇 가지 가정이 필요했습니다.

한 가지 핵심 (과도한) 단순화 가정은 하나의 주소가 하나의 투자자와 같다는 것입니다. 채굴자, 거래소, ICO 지갑과 같은 이더리움 생태계에는 많은 하위 그룹이 있기 때문에 이것은 논쟁하기 어렵습니다. 한편, 이들을 구별하는 것은 개념 증명 파이프라인 구축에 중점을 둔 이 프로젝트의 범위를 벗어납니다.

통계

주어진 클러스터 수를 사용하여 각 모델은 샘플링된 모든 이더리움 주소를 별도의 클러스터로 클러스터링합니다. 이 프로젝트에서 사용된 메트릭은 실루엣 점수. 계수는 각 샘플에 대한 평균 클러스터 내 거리와 평균 최근접 클러스터 거리를 사용하여 계산됩니다. 사용 가능한 실측 값이 없기 때문에 사용 사례에 이상적입니다.

데이터 탐색

10000개의 이더리움 주소 샘플이 추출됩니다. 그들 중 일부는 지정된 쿼리의 추가 조건을 충족하지 않기 때문에 데이터 프레임에서 약 8000개를 사용할 수 있습니다. 아래 표에서 볼 수 있듯이 최소 임계값은 에테르_균형 1이더입니다. 많은 이더리움 주소가 잔액이 XNUMX이기 때문에 이것은 임의로 설정된 경계였습니다.

평균은 138 Ether(25년 15월 2020일 현재 약 75유로)이며, 이는 75번째 백분위수 값을 볼 때 분포의 왜도를 나타냅니다. 13 번째 백분위 수는 138 Ether 미만이지만 평균은 300000입니다. 샘플에는 XNUMX Ether 잔액으로 가장 큰 값과 같은 몇 가지 강력한 이상치가 분명히 있습니다.

XNUMXD덴탈의 고유 토큰 기능은 Ether 잔액에서 분산되지 않습니다. 일반적인 가치는 2개의 고유 토큰에서 8개의 토큰 보유까지 다양합니다.

Unique_transfers 기능은 매우 다양합니다. 평균 전송 횟수는 26회이지만 가장 많은 양은 28560회입니다. 상위 25% 주소에서 대부분의 전송이 발생하는 것을 볼 수 있습니다. 75번째 백분위수에 있는 주소 중 1회 이상 전송된 주소가 없기 때문입니다.

탐색적 시각화

아래는 구성된 모든 기능에 대한 산포 행렬입니다. 시각화에서 명확하게 알 수 있듯이 두 가지 모두에 멱법칙 분포가 존재합니다. eth_balanceUnique_transfers 특징. 둘 다의 누적 값의 대부분은 소수의 주소에 의해 생성됩니다.

한편 서로 다른 기능 간에는 많은 상관관계가 보이지 않습니다.

추출된 특징의 분산형 행렬

사용 가능한 모든 기능에 대한 상관관계 히트맵이 아래에 있습니다. 위에서 이미 지적한 바와 같이 서로 다른 기능 간에는 거의 상관관계가 없습니다. 서로 다른 기능으로 기능 공간의 다른 영역을 탐색하고 싶기 때문에 이는 긍정적인 신호입니다. 강한 상관관계가 있다면 동일한 현상을 다른 기능으로 설명할 수 있습니다.

알고리즘 및 기술

클러스터를 예측하는 데 사용되는 기술은 모두 감독되지 않은 기계 학습 알고리즘입니다. 선택한 항목은 K-평균, 가우시안 혼합 모델 및 계층적 클러스터링입니다.

K-평균에서와 같이 클러스터 간의 경계는 항상 선형이며 다른 두 알고리즘은 더 복잡한 경계를 처리하는 데 사용됩니다. 또한 클러스터 할당의 확률 또는 불확실성을 측정하여 분석을 더 확장할 수 있습니다. 이것은 분석에서 수행되지 않지만 가능한 확장입니다.

기준

프로젝트의 벤치마크 모델은 K-평균 알고리즘의 Silhouette Score입니다. 그런 다음 성능을 비교하기 위해 더 정교한 알고리즘을 사용합니다. 일반적으로 실루엣 점수 0.5는 합리적인 성능으로 고려되는 솔루션의 임계값으로 정의됩니다.

데이터 전처리

세 가지 기능이 추출됩니다.

  • 현재 이더리움 잔액
  • 역사적으로 보유된 고유한 토큰
  • 이더리움 주소에 의한 고유 전송

실시

프로젝트에 사용되는 Python 모듈이 상당히 많습니다. 한편, 이들은 구현의 핵심입니다. Pandas_gbq 라이브러리는 BigQuery Ethereum 데이터 소스를 쿼리하는 데 사용되었습니다. Google 클라우드 BigQuery GCP 서비스 계정에 인증하는 데 사용되었습니다. 사이 킷 러닝 모든 모델의 도구로 사용되었습니다.

프로젝트에 사용된 AWS 서비스:

  • 교육 데이터 저장, 변환기 객체로 전처리 및 GCP 자격 증명을 위한 S3
  • 노트북 인스턴스를 활용하고 프로젝트를 종단 간 연결하는 SageMaker
  • 예측 스크립트를 트리거하는 Lambda 함수
  • 사용자가 상호 작용하는 웹 UI에서 사용되는 API를 생성하기 위한 API 게이트웨이
  • 솔루션을 구축하는 과정에서 발생할 수 있는 문제를 기록하고 디버그하기 위한 CloudWatch

Ethereum 공용 데이터 원본의 두 테이블이 사용됩니다.

  • `bigquery-public-data.crypto_ethereum.balances`
  • `bigquery-public-data.ethereum_blockchain.token_transfers`

멋진 BigQuery 보기 Github 페이지는 SQL 쿼리를 구성하고 Ethereum 데이터 모델을 더 잘 이해하는 데 사용되었습니다.

아래에서 다양한 이더리움 주소에 대해 구성된 기능에 대한 몇 가지 예를 볼 수 있습니다.

샘플링된 이더리움 주소 기능

그런 다음 Sklearn의 파이프라인 기능을 사용하여 기능을 전처리합니다. 기능이 모델에 제공하는 데 유용한지 확인하기 위해 정규화합니다. 이는 전력 변환, 표준 스케일링 및 PCA 변환을 사용하여 수행됩니다. PCA 변환은 XNUMX개의 구성 요소에 매핑된 기능이 XNUMX개뿐이므로 여기에서 중복될 수 있지만 기능 세트가 확장되고 샘플 크기를 고려하여 차원을 줄여야 하는 경우 유용할 수 있습니다.

최종 기능 세트를 사용하여 K-평균 모델, GMM 모델 및 계층적 클러스터링 모델의 세 가지 클러스터링 알고리즘 대안이 모두 학습됩니다.

아래 시각화는 4개 클러스터 각각의 인스턴스 수를 표시합니다.

클러스터 분포

선택한 클러스터 수는 4입니다. 다른 값의 시행착오를 기반으로 선택됩니다. 대체 알고리즘의 성능은 실루엣 계수를 크게 개선하지 못하므로 배포되는 모델에서 사용되는 솔루션에 K-평균이 사용됩니다.

훈련 스크립트를 이용한 훈련 후 훈련된 모델의 메타데이터를 예측 스크립트와 결합하여 개별 이더리움 주소의 클러스터 값을 예측합니다.

예측 스크립트는 제공된 Ethereum 주소의 기능 값을 즉석에서 계산합니다. Ethereum 데이터 소스를 쿼리하고 정규화된 기능 값을 반환합니다. 그런 다음 예측된 클러스터 값을 반환하는 훈련된 모델에 대한 입력으로 사용됩니다.

출처: 유다시티 MLND

최종 솔루션은 API 게이트웨이를 통해 Lambda 함수로 트리거되는 예측 엔드포인트입니다. Lambda 함수는 서버리스 아키텍처를 기반으로 하는 클라우드 함수입니다. 웹 앱의 사용자 인터페이스에서 사용할 수 있는 API로 API 게이트웨이를 통해 배포됩니다.

사용자가 이더리움 주소를 입력하고 제출 버튼을 누를 때마다 예상 클러스터 값이 사용자 인터페이스에 표시됩니다.

모델 평가 및 검증

최종 결과는 사용자가 제공한 이더리움 주소를 기반으로 투자자 프로필을 반환하는 웹 앱입니다. 필요한 모든 데이터는 공개적으로 사용 가능한 Ethereum 데이터 소스에서 추출할 수 있으므로 사용자는 자신의 개인 데이터를 제공할 필요가 없습니다.

모델은 Silhouette 점수를 기반으로 평가됩니다. 현재 100억 개 이상의 기존 이더리움 주소가 있기 때문에 중요하지 않은 잔액을 필터링하는 것과 같은 명시적인 규칙을 만들지 않고는 주소를 안정적으로 샘플링하기가 어렵습니다.

모델은 선택한 메트릭으로 경험적으로 평가됩니다. K-평균의 실루엣 점수는 0.38입니다. 사용 가능한 실측 값이 없기 때문에 이를 확장 가능한 방식으로 객관적으로 테스트할 방법이 없습니다. 반면에 선택한 메트릭은 기능 공간에서 서로 다른 클러스터가 어떻게 차별화되는지 정량화합니다.

최종 솔루션은 샘플 이더리움 주소에 대해 예측된 클러스터 값이 추출되는 웹 앱에서 테스트됩니다.

성능을 고려할 때 해석 가능한 클러스터를 생성할 수 있을 정도로 추출된 데이터에 분산이 충분하지 않다는 것이 분명합니다. 다른 군집을 볼 때 군집의 의미 있는 이름도 찾을 수 없었습니다.

정당화

Silhouette 계수에 대한 0.5 임계값은 달성되지 않았습니다. 즉, 이 메트릭을 고려할 때 기본 데이터를 강력하게 파악하는 모델을 설명할 수 없습니다. 한편, 이 프로젝트의 주요 목표는 개선할 수 있는 최소한의 실행 가능한 솔루션을 구축하는 것이었습니다.

성능의 가장 큰 병목 현상은 모델에 제공되는 기능입니다. 기본 데이터 모델을 더 잘 이해하면 더 나은 기능 세트를 구성할 수 있습니다.

그 외에도 전처리를 개선할 수 있습니다. 그 외에도 모든 알고리즘에서 동일한 값으로 시행 착오를 통해 클러스터 수를 선택했습니다. 좀 더 정교한 분석(실루엣 분석)을 사용하면 속도를 높일 수 있습니다.

이 프로젝트는 기계 학습 파이프라인을 비교적 빠르게 설정하고 웹 UI에서 데이터 제품으로 제공하는 것이 가능한 방법을 보여줍니다.

데이터 과학과 암호화 산업의 성숙도를 고려할 때 이전에는 불가능했던 방식으로 이러한 기술을 결합하는 것이 더 보편화되는 변화를 서서히 보게 될 것입니다.

클라우드 관리형 서비스를 사용하면 많은 복잡성이 추상화되어 소프트웨어 엔지니어링 및 DevOps/MLOps에 대한 교육을 받지 않은 데이터 과학자에게 도움이 됩니다. 그 외에도 높은 수준의 API는 엔지니어가 이전에는 전문 데이터 전문가만 사용할 수 있었던 데이터 제품을 구축하는 데 도움이 될 수 있습니다. 이러한 영역이 발전함에 따라 우리는 소프트웨어 제품의 새로운 패러다임을 가능하게 할 서로에게서 많은 것을 배울 수 있습니다.

암호화 데이터 솔루션을 작업하는 다른 프로젝트:

출처: https://towardsdatascience.com/building-a-crypto-ml-web-app-5f7dd1442568?source=rss——-8—————–cryptocurrency

spot_img

최신 인텔리전스

라이프사이VC

VC 카페

spot_img