http://c.biancheng.net/view/1950.html

本节将介绍如何利用 RNN 预测未来的比特币价格。

核心思想是过去观察到的价格时间序列为未来价格提供了一个很好的预估器。给定时间间隔的比特币值通过https://www.coindesk.com/api/的 API 下载,以下是 API 文档的一部分:

经 MIT 授权许可,本节将使用https://github.com/guillaume-chevalier/seq2seq-signal-prediction中的代码。

具体实现过程

  1. 克隆下面的 GitHub 存储库。这是一个鼓励用户尝试 seq2seq 神经网络架构的项目:



     
  2. 在上述 GitHub 库基础上,考虑使用以下能够下载和标准化比特币历史值(美元或欧元)数据的函数,这些函数在 dataset.py 中定义。训练集和测试集根据 80/20 规律分开,因此,20% 的测试数据是最新的比特币值。每个示例都包含 40 个美元(USD)数据点,特征轴/维度上是欧元(EUR)数据。数据根据均值和标准差进行归一化处理,函数 generate_x_y_data_v4 生成尺寸为 batch_size 的训练数据(或测试数据)的随机样本:


     
  3. 生成训练集、验证集和测试集,并定义一些超参数,例如 batch_size、hidden_dim(RNN 中隐藏神经元的数量)和 layers_stacked_count(堆栈循环单元的数量)。另外,定义一些用于微调优化器性能的参数,例如优化器的学习率、迭代次数、优化器模拟退火的 lr_decay、优化器的动量以及避免过拟合的 L2 正则化。请注意,GitHub 存储库默认 batch_size=5和nb_iters=150,但我设置 batch_size=1000和nb_iters=100000,已经获得了更好的结果:


     
  4. 将网络定义为由基本 GRU 单元组成的编码器–解码器。网络由 layers_stacked_count=2 个 RNN 组成,使用 TensorBoard 对网络进行可视化。请注意,hidden_dim=12 是循环单元中隐藏的神经元:


     
  5. 运行 TensorBoard 并可视化由 RNN 编码器和 RNN 解码器组成的网络:


     
  6. 以下是代码的流程:


    图 1 TensorBoard中的比特币价格预测示例(点此查看高清大图)
     
  7. 定义一个 L2 正则化损失函数,以避免过度拟合并具有更好的泛化能力。优化器选择 RMSprop,其中 learning_rate、decay 和 momentum 的值在第 3 步中已给出:


     
  8. 生成训练数据并在数据集的 batch_size 示例上运行优化程序,为批量训练做好准备。同样,从数据集的 batch_size 示例生成测试数据,为测试做好准备。训练运行迭代次数为 nb_iters+1,并每训练 10 次迭代来测试一次结果:


     
  9. 将 n_predictions 测试结果可视化,nb_predictions 取 5,预测值用黄色圆点实际值用蓝色×符号表示。请注意,预测从直方图中的最后一个蓝点开始,可以看出,即使是这个简单的模型也是相当准确的:


     

    结果如下:



    图 2 比特币价格预测示例(点此查看高清大图)

解读分析

比特币价格的预测是使用一个基于 GRU 基本单元的 RNN 组成的编码器–解码器。RNN 非常擅长学习序列,事实上即使是只有两层和 12 个 GRU 单元的简单模型,比特币价格预测也是相当准确的。当然,这个预测代码并不是鼓励投资比特币,而只是讨论深度学习方法。而且,为了确认是否存在数据过度拟合的情况,需要进行更多的实验。

转载于:https://www.cnblogs.com/DjangoBlog/p/10857910.html

RNN循环神经网络实现预测比特币价格过程详解相关推荐

  1. Keras深度学习实战(1)——神经网络基础与模型训练过程详解

    Keras深度学习实战(1)--神经网络基础与模型训练过程详解 0. 前言 1. 神经网络基础 1.1 简单神经网络的架构 1.2 神经网络的训练 1.3 神经网络的应用 2. 从零开始构建前向传播 ...

  2. python中奖号_Python分析彩票记录并预测中奖号码过程详解

    0 引言 上周被一则新闻震惊到了,<2454万元大奖无人认领!福彩史上第二大弃奖在广东中山产生 >,在2019年5月2日开奖的双色球中,广东中山一位彩民博中2454万元,兑奖时间截至201 ...

  3. 如何从技术上成功预测比特币价格?

    点击上方"CSDN",选择"置顶公众号" 关键时刻,第一时间送达! 许多论证声称,通过深度学习网络可以准确预测加密货币的价格波动.本文则用实际数据打脸:别被玩弄 ...

  4. PyTorch-09 循环神经网络RNNLSTM (时间序列表示、RNN循环神经网络、RNN Layer使用、时间序列预测案例、RNN训练难题、解决梯度离散LSTM、LSTM使用、情感分类问题实战)

    PyTorch-09 循环神经网络RNN&LSTM (时间序列表示.RNN循环神经网络.RNN Layer使用.时间序列预测案例(一层的预测点的案例).RNN训练难题(梯度爆炸和梯度离散)和解 ...

  5. RNN循环神经网络 、LSTM长短期记忆网络实现时间序列长期利率预测

    全文链接:http://tecdat.cn/?p=25133 2017 年年中,R 推出了 Keras 包 _,_这是一个在 Tensorflow 之上运行的综合库,具有 CPU 和 GPU 功能(点 ...

  6. 如何一夜暴富?深度学习教你预测比特币价格

    如何一夜暴富?深度学习教你预测比特币价格 2018年08月06日 17:50:00 近年来,以比特币为代表的加密数字货币一直是社交媒体和搜索引擎上的热门.但是,比特币价格浮动也使各位看官们经历了过山车 ...

  7. 【机器学习】RNN循环神经网络

    循环神经网络归属: 领域:机器学习 方向:自然语言处理 贡献:自动文本生成 循环神经网络实际应用: 生活中因为原始数据都是序列化的,比如自然语言,语音处理,时间序列问题(股票价格)等问题, 这个时候需 ...

  8. [译] RNN 循环神经网络系列 2:文本分类

    原文地址:RECURRENT NEURAL NETWORKS (RNN) – PART 2: TEXT CLASSIFICATION 原文作者:GokuMohandas 译文出自:掘金翻译计划 本文永 ...

  9. 小白学深度之RNN循环神经网络

    不懂CNN的建议先看一下CNN 前言 我们先看一下普通的神经网络,只要训练的数据和次数足够,这种网络是可以拟合任意函数的. 但是这种最基本的网络肯定是有很多不足的,上面那种网络只能单独的处理每一个输入 ...

最新文章

  1. 数字图像处理——第五章 图像复原与重建
  2. playsound函数Linux使用,函数PlaySound和sndPlaySound的用法
  3. python文件对象提供了3个读方法、分别是-Python读写文件模式和文件对象方法实例详解...
  4. Day6: Linux基础片:文件压缩、Vim用法
  5. java继承构造_Java语言的继承结构
  6. 无线网卡的Master,Managed,ad-hoc,monitor等模式
  7. Basler相机SDK相关问题收集与知识汇总
  8. python爬虫ip限制_简单爬虫,突破IP访问限制和复杂验证码,小总结
  9. 不想做科技第一的金融公司,不是好的养老去处
  10. 计算机二级之Office应用之Excel中的函数(3)
  11. windows安装php和mysql
  12. 怎样填充潘通颜色_怎样判定润滑脂,锂基脂的好坏?
  13. 微信公众号开发支付功能调用
  14. Oracle优化新常态 前半生
  15. vue点击按钮跳转路由
  16. 微云html网页,微云收藏在哪里_以及腾讯微云收藏网页版怎么用? - 软件教程 - 格子啦...
  17. 系统迁移涉及到的方案
  18. 【随机一句诗歌】【JS】随机一句诗歌,并且附带点击时间和当前时间。
  19. Udesk全场景客服系统FAQ分享(202010期)
  20. 修改conda环境和缓存默认路径/修改Python 的 pip install 默认安装依赖路径

热门文章

  1. 设计模式(三)创建型模式
  2. Python 数据分析三剑客之 Pandas(二):Index 索引对象以及各种索引操作
  3. 【Python CheckiO 题解】Time Converter (24h to 12h)
  4. win7和mysql乱码,win7 mysql中文乱码怎么处理
  5. 【CodeForces - 467C】George and Job(dp,思维)
  6. 【BZOJ - 3224】普通平衡树(Splay模板题)
  7. 【蓝桥杯官网试题 - 历届试题】格子刷油漆(dp)
  8. 【HDU - 5094】 Maze (状态压缩+bfs)
  9. 【51nod - 1065】 最小正子段和( 前缀和排序 )
  10. 2.2)深度学习笔记:优化算法