主页 > imtoken官方安卓版下载教程 > 比特币突破 8000 美元,我们找到了用 DL 预测虚拟货币价格的方法

比特币突破 8000 美元,我们找到了用 DL 预测虚拟货币价格的方法

【简介】:截至11月22日,比特币价格再创历史新高(约1比特币兑8120美元)。在对虚拟货币的“无敌”感到惊讶的同时,我们或许可以从这股热潮中学到什么。在这篇文章中,David Sheehan,博士。毕业于伦敦大学学院(UCL),向我们介绍了一种使用 Keras 基于 LSTM 预测比特币价格走势的详细方法。在测试中,机器学习预测方法似乎具有不错的准确性。

【牛鼻子】:比特币、虚拟货币、Keras、比特币价格走势

【嵌入牛题】:比特币有什么魔力?如何使用机器学习来预测比特币价格走势?

[嵌入牛文本]:

如果我要列出 2017 年最荒谬的三件事,那就是指尖陀螺、人工智能,当然还有加密货币。以上是个玩笑,实际上我对虚拟货币的运作方式印象深刻,并且非常看好这种颠覆性技术的长期前景。我正在尝试使用深度学习、机器学习或人工智能(是的如何能破解比特币走势,三者皆可!)成功预测虚拟货币的价格。

我认为将深度学习和虚拟货币结合起来是一个非常独特的想法,但是在写这篇文章时,我发现了类似的东西()。本文只关注比特币(最著名的虚拟货币),但我也想讨论一下以太坊。

我们打算使用 LSTM 模型,这是一种非常适合时间序列数据的深度学习模型。

数据

在构建模型之前,我们需要获取一些数据。 Kaggle 上的数据集 ( ) 非常详细地记录了过去几年的比特币价格。在这段时间(年)内,噪声可能会掩盖信号,因此我们需要选择单日价格数据。问题是我们可能没有足够的数据(我们需要数百行而不是数千、数百万行)。在深度学习中,没有任何模型可以克服数据严重缺乏的问题。我也不想使用静态文件,因为当将来使用新数据更新模型时,它会使更新过程复杂化。因此,我们计划从网站和 API 中抓取数据。

我们将在一个模型中使用多种虚拟货币,因此从同一数据源获取数据可能是个好主意。我们将使用 coinmarketcap.com。目前,我们只需要考虑比特币和以太坊如何能破解比特币走势,但以这种方式添加最新的山寨币很难。在输入数据之前,我们必须加载一些 Python 包以使其更容易。

为了证明数据的准确性,我们绘制了两种虚拟货币的价格和交易量与时间的关系:

训练、测试和随机游走

有了数据,就该构建模型了。在深度学习中,数据通常分为训练集和测试集。该模型建立在训练集上,随后在看不见的测试集上进行评估。在时间序列模型中,我们通常使用一个 epoch 的数据进行训练,然后使用另一个 epoch 的数据进行测试。我将时间限定为 2017 年 6 月 1 日(即模型将在该日期之前的数据上进行训练,并在该日期之后的数据上进行测试)。

结果很好!除了一些缺陷外,该模型基本上跟踪两种货币的实际收盘价。它甚至捕捉到了 6 月中旬和 8 月下旬以太币价格的上涨(以及随后的下跌)。正如其他博客中提到的,单点预测的模型经常会产生误导,因为错误不能传递给后续的预测。由于将真实价格输入到模型中,因此无论误差有多大,都会在下一个时间点重新设置。比特币随机游走实际上特别具有欺骗性,因为 y 轴的广泛分布使得预测线看起来很平滑。

长短期记忆 (LSTM)

如果读者对LSTM的理论感兴趣,可以查看上面机器之心发来的教程和讲解。在本文中,我们不需要从头开始构建 LSTM 网络,甚至不需要了解它就可以使用 Keras 或 PyTorch 之类的深度学习框架来完成。本文选择 Keras 框架是因为它需要的理论知识很少,是目前最直观的深度学习框架。

它太低了,无法击败随机游走模型。将 LSTM 模型与更合适的时间序列模型(加权平均、ARIMA 或 Facebook 的 Prophet)进行比较会不会更有趣!此外,我敢肯定,我们将很难再改进 LSTM 模型(添加更多层和/或神经元,更改批量大小、学习率等)。也许虚拟货币的价格变化不规律,可能没有一个模型可以将信号与噪声分开(类似于使用深度学习预测地震的优势)。这些主题可能会在以后的文章中讨论。

我相信他们最终会找到深度学习的用例。同时,您可以下载完整的 Python 代码来构建自己的模型。