当前位置: 首页 > news >正文

python 时间序列预测——Elman循环神经网络

数据集

COE 下载参见 python 时间序列预测——简单神经网络

设定输入输出变量并归一化

from sklearn import preprocessing
import pandas as pd

loc= "COE.csv "
temp = pd.read_csv ( loc )
data= temp . drop ( temp . columns [ [ 0 , 1 ] ] , axis=1)

x=data.drop ( data . columns [ [ 0 , 4 ] ] , axis =1)
x=x.apply(np.log )
x=pd.concat ( [ x , data ['Open?' ] ] , axis=1)

scaler_x = preprocessing . MinMaxScaler (feature_range=(0 , 1) )
x = np .array ( x ) . reshape ( ( len ( x ) ,4 ) )
x = scaler_x . fit_transform ( x )

y=data ['COE$']
scaler_y = preprocessing . MinMaxScaler (feature_range=(0 , 1) )
y = np . array ( y ) . reshape ( ( len ( y ) , 1) )
y = np . log ( y )
y = scaler_y . fit_transform ( y )

y = y.tolist ( )
x = x.tolist ( )

ElmanRecurrent

在这里插入图片描述
在这里插入图片描述

import random
from pyneurgen.neuralnet import NeuralNet
from pyneurgen.recurrent import ElmanSimpleRecurrent 

random.seed (2019)
model = NeuralNet ()
input_nodes = 4
hidden_nodes = 7
output_nodes = 1
model.init_layers ( input_nodes ,
                    [ hidden_nodes ],
                    output_nodes ,
                    ElmanSimpleRecurrent ())
model.randomize_network ()
model.layers [1]. set_activation_type ('sigmoid')
model.set_learnrate (0.05)
model.set_all_inputs (x)
model.set_all_targets (y)

length = len(x)
learn_end_point = int( length * 0.95)
model .set_learn_range (0, learn_end_point )
model .set_test_range ( learn_end_point + 1, length -1)
model . learn ( epochs =100 , show_epoch_results=True , random_testing=False)

mse = model. test ()
print(" test set MSE =",np.round(mse ,6))

target = np.array([ item [0][0] for item in fit1.test_targets_activations ])
pred = [ item [1][0] for item in fit1.test_targets_activations ]
# pred1 = scaler_y.inverse_transform (np.array( pred ). reshape((len(pred), 1)))  # 恢复
# pred1 = np.exp(pred1)

plt.plot(target)
plt.plot(pred)
plt.plot(target*1.05,'--g',target*0.95,'--g')
plt.legend(['target','prediction','CI'])

在这里插入图片描述

相关文章:

  • IFormatProvider 接口
  • python 时间序列预测——NARX循环神经网络
  • 好可爱啊
  • python 时间序列预测——LSTM, GRU
  • python 时间序列预测——多序列预测
  • 为什么美女喜欢软件开发的gg做老公
  • LINQ体验系列文章导航
  • python 绘制条形图
  • 一个很好的svn托管站点
  • Gephi:can’t find java 1.8 or higher
  • 尿飞顿作灵思涌
  • Gephi 网络可视化——导入网络结构
  • DataGrid中使用CheckBox的CheckedChanged事件
  • Gephi 网络可视化——调整网络布局
  • (转)关于pipe()的详细解析
  • @angular/forms 源码解析之双向绑定
  • 《Java编程思想》读书笔记-对象导论
  • 【mysql】环境安装、服务启动、密码设置
  • 2017 前端面试准备 - 收藏集 - 掘金
  • CentOS6 编译安装 redis-3.2.3
  • Kibana配置logstash,报表一体化
  • Netty 框架总结「ChannelHandler 及 EventLoop」
  • Traffic-Sign Detection and Classification in the Wild 论文笔记
  • 纯 javascript 半自动式下滑一定高度,导航栏固定
  • 从0实现一个tiny react(三)生命周期
  • 从tcpdump抓包看TCP/IP协议
  • 好的网址,关于.net 4.0 ,vs 2010
  • 看域名解析域名安全对SEO的影响
  • 七牛云假注销小指南
  • 前端每日实战:61# 视频演示如何用纯 CSS 创作一只咖啡壶
  • 通信类
  • 推荐一个React的管理后台框架
  • 一起来学SpringBoot | 第十篇:使用Spring Cache集成Redis
  • 一文看透浏览器架构
  • 优化 Vue 项目编译文件大小
  • 在GitHub多个账号上使用不同的SSH的配置方法
  • Java性能优化之JVM GC(垃圾回收机制)
  • 阿里云移动端播放器高级功能介绍
  • 第二十章:异步和文件I/O.(二十三)
  • #if和#ifdef区别
  • (+4)2.2UML建模图
  • (13)Hive调优——动态分区导致的小文件问题
  • (9)目标检测_SSD的原理
  • (react踩过的坑)Antd Select(设置了labelInValue)在FormItem中initialValue的问题
  • (Redis使用系列) Springboot 使用redis实现接口幂等性拦截 十一
  • (附源码)spring boot北京冬奥会志愿者报名系统 毕业设计 150947
  • (附源码)spring boot公选课在线选课系统 毕业设计 142011
  • (附源码)ssm考生评分系统 毕业设计 071114
  • (原)记一次CentOS7 磁盘空间大小异常的解决过程
  • .h头文件 .lib动态链接库文件 .dll 动态链接库
  • .NET Framework 服务实现监控可观测性最佳实践
  • .NET 编写一个可以异步等待循环中任何一个部分的 Awaiter
  • .NET/C# 检测电脑上安装的 .NET Framework 的版本
  • .Net6支持的操作系统版本(.net8已来,你还在用.netframework4.5吗)
  • .pyc文件是什么?