- vừa được xem lúc

Dự đoán giá tiền điện tử với Machine Learning

0 0 49

Người đăng: Chung Hoàng Ngọc Kỳ An

Theo Viblo Asia

Trong bài viết này chúng ta sẽ dự đoán giá của BTC và ETH thông qua thuật toán Machine learning. Dữ liệu sẽ được lấy từ website: https://finance.yahoo.com/

Trước tiên chúng ta sẽ cài đặt yfinance API:

!pip install yfinance

đối với Google Colab

pip install yfinance

đối với jupyterLab hoặc jupyter Notebook

Dự đoán giá BTC

import pandas as pd
import yfinance as yf
import datetime
from datetime import date, timedelta
today = date.today() d1 = today.strftime("%Y-%m-%d")
end_date = d1
d2 = date.today() - timedelta(days=730)
d2 = d2.strftime("%Y-%m-%d")
start_date = d2 data = yf.download('BTC-USD', start=start_date, end=end_date, progress=False)
data["Date"] = data.index
data = data[["Date", "Open", "High", "Low", "Close", "Adj Close", "Volume"]]
data.reset_index(drop=True, inplace=True)
print(data.head())

Trong đoạn mã trên, chúng ta đã thu thập dữ liệu mới nhất về giá Bitcoin trong 730 ngày qua. Bây giờ, hãy xem hình dạng của tập dữ liệu này để xem liệu chúng ta có đang làm việc với 730 hàng hay không:

Vì vậy, tập dữ liệu chứa 731 hàng, trong đó hàng đầu tiên chứa tên của mỗi cột. Bây giờ, chúng ta sẽ biểu diễn sự thay đổi về giá bitcoin cho đến ngày hôm nay bằng cách sử dụng biểu đồ nến:

import plotly.graph_objects as go figure = go.Figure(data = [go.Candlestick(x = data["Date"], open = data["Open"], close = data["Close"], low = data["Low"], high = data["High"])])
figure.update_layout(title = "Bitcoin Price Analysis", xaxis_rangeslider_visible = True)
figure.show()

Cột Close trong tập dữ liệu chứa các giá trị mà chúng ta cần dự đoán. Vì vậy, chúng ta hãy xem mối tương quan của tất cả các cột trong dữ liệu liên quan đến cột Close:

correlation = data.corr()
print(correlation["Close"].sort_values(ascending = True))

Dự đoán giá tương lai của tiền điện tử dựa trên vấn đề phân tích chuỗi thời gian. Thư viện AutoTS trong Python là một trong những thư viện tốt nhất để phân tích chuỗi thời gian. Vì vậy, ở đây chúng ta sẽ sử dụng thư viện AutoTS để dự đoán giá bitcoin trong 30 ngày tới:

Lệnh cài đặt AutoTS trên Google Colab:

!pip install autots

Lệnh cài đặt AutoTS trên Jupyter Notebook

pip install autots
from autots import AutoTS model = AutoTS(forecast_length = 30, frequency = "infer", ensemble = "simple")
model = model.fit(data, date_col = "Date", value_col = "Close", id_col = None)
prediction = model.predict()
forecast = prediction.forecast
print(forecast)

Dự đoán giá ETH

Các bước và code sẽ tương tự như trên, các bạn chỉ cẩn thay cặp "BTC-USD" thành "ETH-USD"

import numpy as np
import pandas as pd
import yfinance as yf
import datetime
from datetime import date, timedelta today = date.today() d1 = today.strftime("%Y-%m-%d")
end_date = d1
d2 = date.today() - timedelta(days = 730)
d2 = d2.strftime("%Y-%m-%d")
start_date = d2 data = yf.download("ETH-USD", start = start_date, end = end_date, progress = True)
data["Date"] = data.index
data = data[["Date", "Open", "High", "Low", "Close", "Adj Close", "Volume"]]
data.reset_index(drop = True, inplace = True)
print(data.head())

import plotly.graph_objects as go figure = go.Figure(data = [go.Candlestick(x = data["Date"], open = data["Open"], close = data["Close"], low = data["Low"], high = data["High"])])
figure.update_layout(title = "ETH Price Analysis", xaxis_rangeslider_visible = True)
figure.show()

correlation = data.corr()
print(correlation["Close"].sort_values(ascending = True))

from autots import AutoTS model = AutoTS(forecast_length = 30, frequency = "infer", ensemble = "simple")
model = model.fit(data, date_col = "Date", value_col = "Close", id_col = None)
prediction = model.predict()
forecast = prediction.forecast
print(forecast)

Bình luận

Bài viết tương tự

- vừa được xem lúc

Hành trình AI của một sinh viên tồi

Mình ngồi gõ những dòng này vào lúc 2h sáng (chính xác là 2h 2 phút), quả là một đêm khó ngủ. Có lẽ vì lúc chiều đã uống cốc nâu đá mà giờ mắt mình tỉnh như sáo, cũng có thể là vì những trăn trở về lý thuyết chồng chất ánh xạ mình đọc ban sáng khiến không tài nào chợp mắt được hoặc cũng có thể do mì

0 0 131

- vừa được xem lúc

[Deep Learning] Key Information Extraction from document using Graph Convolution Network - Bài toán trích rút thông tin từ hóa đơn với Graph Convolution Network

Các nội dung sẽ được đề cập trong bài blog lần này. . Tổng quan về GNN, GCN. Bài toán Key Information Extraction, trích rút thông tin trong văn bản từ ảnh.

0 0 204

- vừa được xem lúc

Tìm hiểu về YOLO trong bài toán real-time object detection

1.Yolo là gì. . Họ các mô hình RCNN ( Region-Based Convolutional Neural Networks) để giải quyết các bài toán về định vị và nhận diện vật thể.

0 0 272

- vừa được xem lúc

Encoding categorical features in Machine learning

Khi tiếp cận với một bài toán machine learning, khả năng cao là chúng ta sẽ phải đối mặt với dữ liệu dạng phân loại (categorical data). Khác với các dữ liệu dạng số, máy tính sẽ không thể hiểu và làm việc trực tiếp với categorical variable.

0 0 244

- vừa được xem lúc

TF Lite with Android Mobile

Như các bạn đã biết việc đưa ứng dụng đến với người sử dụng thực tế là một thành công lớn trong Machine Learning.Việc làm AI nó không chỉ dừng lại ở mức nghiên cứu, tìm ra giải pháp, chứng minh một giải pháp mới,... mà quan trọng là đưa được những nghiên cứu đó vào ứng dụng thực tế, được sử dụng để

0 0 55

- vừa được xem lúc

Xây dựng hệ thống Real-time Multi-person Tracking với YOLOv3 và DeepSORT

Trong bài này chúng ta sẽ xây dựng một hệ thống sử dụng YOLOv3 kết hợp với DeepSORT để tracking được các đối tượng trên camera, YOLO là một thuật toán deep learning ra đời vào tháng 5 năm 2016 và nó nhanh chóng trở nên phổ biến vì nó quá nhanh so với thuật toán deep learning trước đó, sử dụng YOLO t

0 0 303