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

选自GitHub

作者:DavidSheehan

机器之心编译

截至11月22日,比特币的价格再创历史新高,在惊讶于虚拟货币「不可战胜」的同时,我们或许能可以从这一波热潮中学到些什么。本文中,博士毕业于伦敦大学学院的DavidSheehan为我们介绍了使用Keras基于LSTM预测比特币价格走势的详细方法。在测试中,这个机器学习预测法似乎有着不错的准确度。

如果要列出2017年最为荒谬的三样事物,则一定是指尖陀螺、人工智能,当然,还有加密虚拟货币。以上是玩笑话,实际上我对虚拟货币的原理印象深刻,而且非常看好这种颠覆性技术的长期前景。我试图通过深度学习、机器学习或者说人工智能成功预测虚拟货币的价格。

我认为把深度学习和虚拟货币结合起来是非常独特的想法,但是在写本文时,我发现了一些类似的内容。这篇文章只关注比特币,但是我还想讨论一下以太币。

我们打算使用LSTM模型,一种非常适合时序数据的深度学习模型。如果你希望真正了解理论或概念,那么推荐阅读:

LSTM入门必读:从基础知识到工作方式详解

数据:2,459枚比特币从未知钱包转移到币安:金色财经报道,据Whale Alert监测显示,2,459枚比特币(72,661,201美元)从未知钱包转移到币安。[2023/7/27 16:02:31]

深度|LSTM和递归网络基础教程

教程|基于Keras的LSTM多变量时间序列预测

教程|如何判断LSTM模型中的过拟合与欠拟合

深度|从任务到可视化,如何理解LSTM网络中的神经元

干货|图解LSTM神经网络架构及其11种变体

完整代码地址:https://github.com/dashee87/blogScripts/blob/master/Jupyter/2017-11-20-predicting-cryptocurrency-prices-with-deep-learning.ipynb

数据

在构建模型之前,我们需要先获取一些数据。Kaggle上的数据集非常详细地记录了近几年的比特币价格。在这个时间长度中,噪声可能盖住了信号,因此我们需要选择单日价格数据。问题在于我们可能没有充足的数据。在深度学习中,没有模型可以克服数据严重缺乏的问题。我同样不想使用静态文件,因为未来使用新数据更新模型时,这种做法会复杂化更新流程。于是,我们计划从网站和API中抓取数据。

DFINITY推出与比特币网络直接集成的IC Beta版本:8月5日消息,DFINITY推出与比特币网络直接集成的IC(InternetComputer)Beta版本,该版本无需第三方跨链桥,并且可以在IC上为比特币提供智能合约功能,开发者已可以使用集成API进行测试。DFINITY表示,未来将引入比特币封装资产ckBTC,可以在IC上低成本流通。[2022/8/5 12:04:11]

我们将在一个模型中使用多种虚拟货币,因此从同一个数据源抓取数据或许是一个不错的主意。我们将使用coinmarketcap.com。现在,我们只需要考虑比特币和以太币,但是使用这种方法添加最新火起来的山寨币就很难了。在输入数据之前,我们必须加载一些Python包,这样会容易一些。

importpandasaspd

importtime

importseabornassns

importmatplotlib.pyplotasplt

importdatetime

importnumpyasnp

Billions项目组convertthedatestringtothecorrectdateformat

声音 | CNBC主持人:比特币ETF有可能在2019年Q1被批准:加密分析师和CNBC节目主持人Ran Neuner发推称:“自美国SEC新上任的专员Elad Roisman召开会议讨论比特币ETF提案后,我很确信,下面的言论是真实的。”同时配图,图中写着“比特币ETF在2019年第一季度的晚些时候被批准是有可能的,甚至是不可避免的。”[2018/10/24]

bitcoin_market_info=bitcoin_market_info.assign(Date=pd.to_datetime(bitcoin_market_info))

Billions项目组converttoint

bitcoin_market_info=bitcoin_market_info.astype('int64')

Billions项目组importtherelevantKerasmodules

fromkeras.modelsimportSequential

fromkeras.layersimportActivation,Dense

比特币价格9119.9605美元:BTC比特币报9119.9605美元,24小时涨幅1.04%。ETH以太币报678.5874美元,24小时涨幅1.92%。XRP瑞波币报0.8460美元,24小时涨幅3.04%。[2018/5/2]

fromkeras.layersimportLSTM

fromkeras.layersimportDropout

defbuild_model(inputs,output_size,neurons,activ_func="linear",

dropout=0.25,loss="mae",optimizer="adam"):

model=Sequential()

model.add(LSTM(neurons,input_shape=(inputs.shape,inputs.shape)))

model.add(Dropout(dropout))

model.add(Dense(units=output_size))

model.add(Activation(activ_func))

七种比特币借记卡服务&费率:1、Bitwala 预付费借记卡,支持欧元交易,ATM费用2.25欧元,POS交易免费;2、Spectroncoin Visa卡,支持美元、欧元和英镑,每月服务费1欧元,ATM费用约为3.5美元/2.75欧元/2.25英镑;3、Bitpay Visa卡,为美国和欧洲用户提供支持,ATM每笔2美元,POS交易免费;4、Xapo借记卡,ATM费用为2.25欧元,POS交易免费;5、Coinbase Shift卡,ATM美国本土单笔2.5美元,跨国每笔3.5美元;6、Coinsbank,ATM交易费用为4.95美元;月服务费0.95美元;7、Wirex卡,ATM交易费2.5美元,每月1美元服务费[2018/1/8]

model.compile(loss=loss,optimizer=optimizer)

returnmodel

那么,build_model函数构建了一个模型,名为model,该模型添加了一个LSTM层和全连接层。该层的形态已经调整以适合输入。该函数还包括更通用的神经网络特征,如dropout和激活函数。现在,我们只需指定LSTM层中神经元的数量和训练数据。

Billions项目组initialisemodelarchitecture

eth_model=build_model(LSTM_training_inputs,output_size=1,neurons=20)

Billions项目组trainmodelondata

Billions项目组eth_preds=np.loadtxt('eth_preds.txt')

--------------------------------------------------------------------------

Epoch50/50

6s-loss:0.0625

我们刚才构建了一个LSTM模型来预测明天的以太币收盘价。现在我们来看一下效果如何。首先检查训练集性能。代码下面的数字代表50次训练迭代后该模型在训练集上的平均绝对误差。我们可以看到模型输出就是每日收盘价。

我们不应对它的准确率感到惊讶。该模型可以检测误差来源并进行调整。事实上,获取趋近于零的训练误差并不难。我们只需要数百个神经元和数千个训练epoch。我们应该对它在测试集上的性能更感兴趣,因为测试集中是模型未见过的全新数据。

注意单点预测具备误导性,而我们的LSTM模型似乎可以在未见过的测试集上实现良好的性能。最显著的缺点是单点预测无法检测出当以太币突然上涨时必然会下跌。事实上,它一直都是失败的,只不过在这些波动点更加明显而已。预测价格一般更接近一天后的实际价格。我们还可以构建一个适用于比特币的类似的LSTM模型,测试集预测结果见下图。

如前所述,单点预测具有一定误导性。我们现在构建一个LSTM模型来预测接下来5天的虚拟货币价格。

从视觉效果上来看,预测结果没有其单点预测更加鲜明。但是,我很高兴,该模型返回了一些细微的行为;它不仅仅预测价格在一个方向的移动轨迹。因此,该模型还有很多优化空间。

现在回到单点预测,我们的深度机器人工神经模型看起来还不错,但是随机游走模型看起来也还行。与随机游走模型类似,LSTM模型对随机种子的选择很敏感。那么,如果我们想对比这两种模型,就需要把每个模型运行多次来评估模型误差。误差可以作为测试集中真实和预测收盘价的绝对差。

或许AI完全值得这些炒作!这些图显示了在进行25次不同的初始化之后,每个模型在测试集上的误差。LSTM模型对比特币和以太币价格的预测误差分别是0.04和0.05,完胜相应的随机游走模型。

只是为了打败随机游走模型的话也太low了。对比LSTM模型和更合适的时序模型岂不是更加有趣!另外,我确定很难再提升我们的LSTM模型了。可能虚拟货币价格变化没有规律吧,可能没有一个模型可以把信号和噪声分离开。以后的文章中可能会讨论这些话题。

幸运的是,你已经察觉到我对使用深度学习预测虚拟货币价格变化的怀疑态度。原因在于我们忽略了最优的框架:人类智能。很明显,预测虚拟货币价格的完美模型是:

我确定他们最终最终会找到深度学习的使用案例的。同时,你可以下载完整的Python代码构建自己的模型。

原文链接:https://dashee87.github.io/deep%20learning/python/predicting-cryptocurrency-prices-with-deep-learning/

本文为机器之心编译,转载请联系本公众号获得授权。

------------------------------------------------

加入机器之心:hr@jiqizhixin.com

投稿或寻求报道:content@jiqizhixin.com

广告&商务合作:bd@jiqizhixin.com

郑重声明: 本文版权归原作者所有, 转载文章仅为传播更多信息之目的, 如作者信息标记有误, 请第一时间联系我们修改或删除, 多谢。

银河链

ETH手把手教你用个人电脑挖新比特币(NBTC)

好消息!!!新比特币于2018年2月8日正式上线钱包和矿池了。让很多新比特币迷们望穿秋水的挖矿新比特币的机会终于来了,小编不吃饭为大家先献上全套新比特币挖矿教程.

[0:0ms0-1:823ms