• 机器学习案例(六):加密货币价格预测


    加密i货币是一种加密和去中心化的数字交换媒介。许多人使用加密货币作为一种投资形式,因为它即使在短时间内也能带来丰厚的回报。比特币、狗狗币是当今流行的加密货币之一。如果你想知道如何通过机器学习预测任何加密货币的未来价格,这篇文章适合你。在本文中,我将引导你完成使用 Python 进行机器学习的加密货币价格预测任务。

    原创:CSDN/知乎:川川菜鸟

    一、案例实践

    预测加密货币的价格是数据科学界流行的案例研究之一。股票和加密货币的价格不仅仅取决于购买或出售它们的人数。如今,这些投资价格的变化还取决于政府对任何加密货币的金融政策的变化。人们对特定加密货币或直接或间接支持加密货币的个人的感受也会导致特定加密货币的大量买卖,从而导致价格变化。

    简而言之,买卖会导致任何加密货币的价格发生变化,但买卖趋势取决于许多因素。使用机器学习进行加密货币价格预测只能在价格因人们在买卖加密货币之前看到的历史价格而发生变化的情况下起作用。因此,在下面的部分中,我将带你了解如何预测未来 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 = 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)
    data
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21

    如下:
    在这里插入图片描述
    在上面的代码中,我收集了过去 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()
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9

    如下:
    在这里插入图片描述
    数据集中的 Close 列包含我们需要预测的值。那么,我们来看看数据中所有关于 Close 列的列的相关性:

    correlation = data.corr()
    print(correlation["Close"].sort_values(ascending=False))
    
    • 1
    • 2

    如下:

    Close        1.000000
    Adj Close    1.000000
    High         0.997590
    Low          0.997203
    Open         0.994543
    Volume       0.214336
    Name: Close, dtype: float64
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7

    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)
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    训练很久后,得到结果如下:

    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
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30

    二、总结

    买卖会导致任何加密货币的价格发生变化,但买卖趋势取决于许多因素。使用机器学习进行加密货币价格预测只能在价格因人们在买卖加密货币之前看到的历史价格而发生变化的情况下起作用。如果是政策等原因,则可能会预测出现误差较大。

  • 相关阅读:
    CSP-S 2023 游记
    智慧农业新篇章:拓世法宝AI智能直播一体机助力乡村振兴与农业可持续发展
    Unity之ShaderGraph如何实现UV抖动
    Golang【Web 入门】 07 路由 - http.ServeMux
    Mac下安装Hadoop
    requests库中解决字典值中列表在URL编码时的问题
    java 通过代码打开文件夹或者文件
    第九章 排序【数据结构】【精致版】
    24.聚类算法的介绍
    huffman编码
  • 原文地址:https://blog.csdn.net/weixin_46211269/article/details/126747101