加密i货币是一种加密和去中心化的数字交换媒介。许多人使用加密货币作为一种投资形式,因为它即使在短时间内也能带来丰厚的回报。比特币、狗狗币是当今流行的加密货币之一。如果你想知道如何通过机器学习预测任何加密货币的未来价格,这篇文章适合你。在本文中,我将引导你完成使用 Python 进行机器学习的加密货币价格预测任务。
原创:CSDN/知乎:川川菜鸟
文章目录
- 一、案例实践
- 1.1 数据加载
- 1.2 可视化
- 1.3 加密货币价格预测模型
- 二、总结
一、案例实践
预测加密货币的价格是数据科学界流行的案例研究之一。股票和加密货币的价格不仅仅取决于购买或出售它们的人数。如今,这些投资价格的变化还取决于政府对任何加密货币的金融政策的变化。人们对特定加密货币或直接或间接支持加密货币的个人的感受也会导致特定加密货币的大量买卖,从而导致价格变化。
简而言之,买卖会导致任何加密货币的价格发生变化,但买卖趋势取决于许多因素。使用机器学习进行加密货币价格预测只能在价格因人们在买卖加密货币之前看到的历史价格而发生变化的情况下起作用。因此,在下面的部分中,我将带你了解如何预测未来 30 天的比特币价格(这是最受欢迎的加密货币之一)。
本
案例我在kaggle上测试,本地是无论如何都无法成功导入数据,请注意。
1.1 数据加载
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 = d2data = yf.download('BTC-USD', start=start_date, end=end_date, progress=False)
data["Date"] = data.indexdata = data[["Date","Open","High", "Low","Close","Adj Close","Volume"]]
data.reset_index(drop=True,inplace=True)
data
如下:
在上面的代码中,我收集了过去 730 天比特币价格的最新数据。
1.2 可视化
绘制烛台图:
import plotly.graph_objects as go
figure = go.Figure(data=[go.Candlestick(x=data["Date"],open=data["Open"], high=data["High"],low=data["Low"], close=data["Close"])])
figure.update_layout(title = "比特币价格分析", xaxis_rangeslider_visible=False)
figure.show()
如下:
数据集中的 Close 列包含我们需要预测的值。那么,我们来看看数据中所有关于 Close 列的列的相关性:
correlation = data.corr()
print(correlation["Close"].sort_values(ascending=False))
如下:
Close 1.000000
Adj Close 1.000000
High 0.997590
Low 0.997203
Open 0.994543
Volume 0.214336
Name: Close, dtype: float64
1.3 加密货币价格预测模型
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)
训练很久后,得到结果如下:
2022-09-07 23626.816014
2022-09-08 23625.952552
2022-09-09 23308.522851
2022-09-10 23223.812720
2022-09-11 23194.263876
2022-09-12 23080.754378
2022-09-13 23123.512284
2022-09-14 22966.604398
2022-09-15 22962.784050
2022-09-16 22642.400237
2022-09-17 22554.733965
2022-09-18 22522.228504
2022-09-19 22405.763128
2022-09-20 22445.563796
2022-09-21 22285.700426
2022-09-22 22278.923259
2022-09-23 21955.585403
2022-09-24 21864.963059
2022-09-25 21829.501049
2022-09-26 21710.079866
2022-09-27 21746.923366
2022-09-28 21584.104579
2022-09-29 21574.370665
2022-09-30 21248.078836
2022-10-01 21154.500489
2022-10-02 21116.082001
2022-10-03 20993.705081
2022-10-04 21027.591483
2022-10-05 20861.817352
2022-10-06 20849.126760
二、总结
买卖会导致任何加密货币的价格发生变化,但买卖趋势取决于许多因素。使用机器学习进行加密货币价格预测只能在价格因人们在买卖加密货币之前看到的历史价格而发生变化的情况下起作用。如果是政策等原因,则可能会预测出现误差较大。