还是不靠谱!多维LSTM网络预测比特币价格【机器学习应用区块链系列二】

2018 年 1 月 22 日 量化投资与机器学习 编辑部


量化投资与机器学习

为中国的量化投资事业贡献一份我们的力量!

 



公众号今天为大家带来机器学习应用区块链系列的第二篇文章。


这篇文章的作者是公众号之前推过一位原作者,具体文章通过LSTM神经网络进行时序预测针对股票市场(附Python源码),虽然有一段时了,但是,我们觉得这篇文章的结论很有用,希望大家可以认真阅读。


结论很精彩,见文末。


也侧面告诉我们使用一些机器学习算法做股价预测,效果并没有那么好!大家不要觉得什么高大上就一定好,有时候真实的交易其实并没有那么复杂!


至于怎么预测的过程大家可以下载代码自行去研究。


写这篇文章,主要是为了预测比特币的价格和张量,使用一个不只是看价格而且还看BTC交易量和货币(在这种情况下为美元)的多维LSTM神经网络,并创建一个多变量序列机器学习模型。


时间数据集


Kaggle上有一个数据集,包含了7种要素的比特币历史数据。


链接:https://www.kaggle.com/mczielinski/bitcoin-historical-data



具体处理的过程大家自行查看内容,只把clean_data()函数的核心代码贴出来:

num_rows = len(data)
x_data = []
y_data = []
i = 0
while((i+x_window_size+y_window_size) <= num_rows):
 x_window_data = data[i:(i+x_window_size)]
 y_window_data = data[(i+x_window_size):(i+x_window_size+y_window_size)]

 #Remove any windows that contain NaN
 if(x_window_data.isnull().values.any() or y_window_data.isnull().values.any()):
   i += 1
   continue
 
 if(normalise):
   abs_base, x_window_data = self.zero_base_standardise(x_window_data)
   _, y_window_data = self.zero_base_standardise(y_window_data, abs_base=abs_base)

 #Average of the desired predicter y column
 y_average = np.average(y_window_data.values[:, y_col])
 x_data.append(x_window_data.values)
 y_data.append(y_average)
 i += 1


预测结果


我们将尝试做两种类型的预测:


第一种:逐点预测,即预测t+1点,然后移动真实数据的窗口并继续预测下一个点。

model = lstm.load_network('data/model_saved.h5')
predictions = model.predict_generator(
   generator_strip_xy(data_gen_test, true_values),
   steps=steps_test
)

#Save our predictions
with h5py.File(configs['model']['filename_predictions'], 'w') as hf:
   dset_p = hf.create_dataset('predictions', data=predictions)
   dset_y = hf.create_dataset('true_values', data=true_values)
   
plot_results(predictions[:800], true_values[:800])



第二种:是t+n的多步超前预测,我们在移动窗口填充真实数据窗口预置的预测,并绘制N个步骤。

#Reload the data-generator
data_gen_test = dl.generate_clean_data(
   configs['data']['filename_clean'],
   batch_size=800,
   start_index=ntrain
)
data_x, true_values = next(data_gen_test)
window_size = 50 #numer of steps to predict into the future

#We are going to cheat a bit here and just take the next 400 steps from the testing generator and predict that data in its whole
predictions_multiple = predict_sequences_multiple(
   model,
   data_x,
   data_x[0].shape[0],
   window_size
)

plot_results_multiple(predictions_multiple, true_values, window_size)


结论(我们认为很有用的结论)


不以人工智能的角度,而是从投资的角度来解释一些事实。


预测回报是一项相当没有意义的行为。我的意思是说,预测回报是预测的圣杯,而一些顶级对冲基金视图通过在现实中找到新的alpha指标来做到这一点,这是一件非常困难的事情,因为复杂的外部因素会影响到价格的走动。实际上,它可以看作是试图预测随机的下一步。


但是,我们做的也并不是完全没有意义。有限的时间序列数据,即使有多个维度,也很难预测回报,我们可以看到,特别是从第二个图表看到,是有一个预测波动的方法。而不仅仅是波动,而且我们也可以通过扩张它来预测市场环境,使我们能够了解我们目前所在的市场环境。

我们可以看到,通过了解我们当前的市场环境,预测未来的市场环境是在任何时候将正确的策略分配到市场的关键。虽然这更多是传统市场的一般投资方式,但同样适用于比特币市场。


所以,预测比特币的长期价格目前相当的困难,没有人可以只是通过时间序列数据技术做到,因为有很多因素加入使价格发生了变动。在这样的数据集上使用LSTM神经网络的另一个问题是我们将整个时间序列数据集作为一个固定的时间序列。也就是说,时间序列的属性在整个时间内都是不变的。然而这不可能,因为影响价格变化的因素也会随时间而变化,所以假设网络发现的属性或模式在现在仍然使用是一种不合理的做法。


当然,可以通过一些方法来克服这个非平稳性问题,目前前沿的研究方向是利用贝叶斯方法和LSTM一起克服时间序列非平稳性的问题。


获取本系列代码+论文

请在后台回复

区块链2

即可获取

有些人不知道后台回复如何操作

为大家介绍一下:


登录查看更多
2

相关内容

Microsoft Windows(视窗操作系统)是微软公司推出的一系列操作系统。它问世于1985年,当时是DOS之下的操作环境,而后其后续版本作逐渐发展成为个人电脑和服务器用户设计的操作系统。
专知会员服务
59+阅读 · 2020年3月19日
【华侨大学】基于混合深度学习算法的疾病预测模型
专知会员服务
96+阅读 · 2020年1月21日
【新书】Python中的经典计算机科学问题,224页pdf
专知会员服务
143+阅读 · 2019年12月28日
金融时序预测中的深度学习方法:2005到2019
专知会员服务
165+阅读 · 2019年12月4日
六篇 CIKM 2019 必读的【图神经网络(GNN)】长文论文
专知会员服务
37+阅读 · 2019年11月3日
【电子书】让 PM 全面理解深度学习 65页PDF免费下载
专知会员服务
16+阅读 · 2019年10月30日
强化学习最新教程,17页pdf
专知会员服务
167+阅读 · 2019年10月11日
使用LSTM模型预测股价基于Keras
量化投资与机器学习
34+阅读 · 2018年11月17日
【年度系列】使用LSTM预测股票市场基于Tensorflow
量化投资与机器学习
19+阅读 · 2018年10月16日
基于 Keras 用 LSTM 网络做时间序列预测
R语言中文社区
21+阅读 · 2018年8月6日
基于 Keras 用深度学习预测时间序列
R语言中文社区
23+阅读 · 2018年7月27日
时间序列深度学习:状态 LSTM 模型预测太阳黑子(下)
R语言中文社区
9+阅读 · 2018年6月15日
手把手教你用Python库Keras做预测(附代码)
数据派THU
14+阅读 · 2018年5月30日
用深度学习预测比特币价格
Python程序员
11+阅读 · 2017年12月23日
【推荐】用Tensorflow理解LSTM
机器学习研究会
36+阅读 · 2017年9月11日
【推荐】(Keras)LSTM多元时序预测教程
机器学习研究会
24+阅读 · 2017年8月14日
Bivariate Beta LSTM
Arxiv
5+阅读 · 2019年10月7日
Hierarchy Parsing for Image Captioning
Arxiv
6+阅读 · 2019年9月10日
Arxiv
19+阅读 · 2018年10月25日
Arxiv
14+阅读 · 2018年5月15日
Arxiv
7+阅读 · 2018年1月18日
VIP会员
相关VIP内容
专知会员服务
59+阅读 · 2020年3月19日
【华侨大学】基于混合深度学习算法的疾病预测模型
专知会员服务
96+阅读 · 2020年1月21日
【新书】Python中的经典计算机科学问题,224页pdf
专知会员服务
143+阅读 · 2019年12月28日
金融时序预测中的深度学习方法:2005到2019
专知会员服务
165+阅读 · 2019年12月4日
六篇 CIKM 2019 必读的【图神经网络(GNN)】长文论文
专知会员服务
37+阅读 · 2019年11月3日
【电子书】让 PM 全面理解深度学习 65页PDF免费下载
专知会员服务
16+阅读 · 2019年10月30日
强化学习最新教程,17页pdf
专知会员服务
167+阅读 · 2019年10月11日
相关资讯
使用LSTM模型预测股价基于Keras
量化投资与机器学习
34+阅读 · 2018年11月17日
【年度系列】使用LSTM预测股票市场基于Tensorflow
量化投资与机器学习
19+阅读 · 2018年10月16日
基于 Keras 用 LSTM 网络做时间序列预测
R语言中文社区
21+阅读 · 2018年8月6日
基于 Keras 用深度学习预测时间序列
R语言中文社区
23+阅读 · 2018年7月27日
时间序列深度学习:状态 LSTM 模型预测太阳黑子(下)
R语言中文社区
9+阅读 · 2018年6月15日
手把手教你用Python库Keras做预测(附代码)
数据派THU
14+阅读 · 2018年5月30日
用深度学习预测比特币价格
Python程序员
11+阅读 · 2017年12月23日
【推荐】用Tensorflow理解LSTM
机器学习研究会
36+阅读 · 2017年9月11日
【推荐】(Keras)LSTM多元时序预测教程
机器学习研究会
24+阅读 · 2017年8月14日
相关论文
Top
微信扫码咨询专知VIP会员