一、获取代码方式

获取代码方式1:
完整代码已上传我的资源:【房价预测】基于matlab Elman神经网络开盘价预测【含Matlab源码 708期】

获取代码方式2:
通过订阅紫极神光博客付费专栏,凭支付凭证,私信博主,可获得此代码。

备注:
订阅紫极神光博客付费专栏,可免费获得1份代码(有效期为订阅日起,三天内有效);

二、Elman神经网络简介

1 Elman网络特点
Elman神经网络是一种典型的动态递归神经网络,它是在BP网络基本结构的基础上,在隐含层增加一个承接层,作为一步延时算子,达到记忆的目的,从而使系统具有适应时变特性的能力,增强了网络的全局稳定性,它比前馈型神经网络具有更强的计算能力,还可以用来解决快速寻优问题。
2 Elman网络结构
Elman神经网络是应用较为广泛的一种典型的反馈型神经网络模型。一般分为四层:输入层、隐层、承接层和输出层。其输入层、隐层和输出层的连接类似于前馈网络。输入层的单元仅起到信号传输作用,输出层单元起到加权作用。隐层单元有线性和非线性两类激励函数,通常激励函数取Signmoid非线性函数。而承接层则用来记忆隐层单元前一时刻的输出值,可以认为是一个有一步迟延的延时算子。隐层的输出通过承接层的延迟与存储,自联到隐层的输入,这种自联方式使其对历史数据具有敏感性,内部反馈网络的加入增加了网络本身处理动态信息的能力,从而达到动态建模的目的。其结构图如下图1所示,

其网络的数学表达式为:




3 Elman网络与BP网络的区别
它是动态反馈型网络,它能够内部反馈、存储和利用过去时刻输出信息,既可以实现静态系统的建模,还能实现动态系统的映射并直接反应系统的动态特性,在计算能力及网络稳定性方面都比BP神经网络更胜一筹。
4 Elman网络缺点
与BP神经网络一样,算法都是采用基于梯度下降法,会出现训练速度慢和容易陷入局部极小点的缺点,对神经网络的训练较难达到全局最优。

三、部分源代码

% elman_stock.m
%% 清除工作空间中的变量和图形
clear,clc
close all% 加载337期上证指数开盘价格
load elm_stockwhos%% 2.构造样本集
% 数据个数
n=length(price);% 确保price为列向量
price=price(:);% x(n) 由x(n-1),x(n-2),...,x(n-L)共L个数预测得到.
L = 6;% price_n:每列为一个构造完毕的样本,共n-L个样本
price_n = zeros(L+1, n-L);
for i=1:n-Lprice_n(:,i) = price(i:i+L);
end%% 划分训练、测试样本
% 将前280份数据划分为训练样本
% 后51份数据划分为测试样本trainx = price_n(1:6, 1:280);
trainy = price_n(7, 1:280);testx = price_n(1:6, 290:end);
testy = price_n(7, 290:end);%% 创建Elman神经网络% 包含15个神经元,训练函数为traingdx
net=elmannet(1:2,15,'traingdx');% 设置显示级别
net.trainParam.show=1;% 最大迭代次数为2000次
net.trainParam.epochs=2000;% 误差容限,达到此误差就可以停止训练
net.trainParam.goal=0.00001;% 最多验证失败次数
net.trainParam.max_fail=5;% 对网络进行初始化
net=init(net);%% 网络训练%训练数据归一化
[trainx1, st1] = mapminmax(trainx);
[trainy1, st2] = mapminmax(trainy);% 测试数据做与训练数据相同的归一化操作
testx1 = mapminmax('apply',testx,st1);
testy1 = mapminmax('apply',testy,st2);% 输入训练样本进行训练
[net,per] = train(net,trainx1,trainy1);%% 测试。输入归一化后的数据,再对实际输出进行反归一化% 将训练数据输入网络进行测试
train_ty1 = sim(net, trainx1);
train_ty = mapminmax('reverse', train_ty1, st2);% 将测试数据输入网络进行测试
test_ty1 = sim(net, testx1);
test_ty = mapminmax('reverse', test_ty1, st2);%% 显示结果
% 显示训练数据的测试结果
figure(1)
x=1:length(train_ty);% 显示真实值hold on
% 显示神经网络的输出值
plot(x,train_ty,'r--')legend('股价真实值','Elman网络输出值')
title('训练数据的测试结果');% 显示残差
figure(2)
plot(x, train_ty - trainy)
title('训练数据测试结果的残差')% 显示均方误差
mse1 = mse(train_ty - trainy);
fprintf('    mse = \n     %f\n', mse1)% 显示相对误差
disp('    相对误差:')
fprintf('%f  ', (train_ty - trainy)./trainy );
fprintf('\n')figure(3)
x=1:length(test_ty);% 显示真实值
plot(x,testy,'b-');
hold on
% 显示神经网络的输出值
plot(x,test_ty,'r--')legend('股价真实值','Elman网络输出值')
title('测试数据的测试结果');% 显示残差
figure(4)
plot(x, test_ty - testy)
title('测试数据测试结果的残差')% 显示均方误差
mse2 = mse(test_ty - testy);
fprintf('    mse = \n     %f\n', mse2)
% 确保price为列向量
price=price(:);% x(n) 由x(n-1),x(n-2),...,x(n-L)共L个数预测得到.
L = 6;% price_n:每列为一个构造完毕的样本,共n-L个样本
price_n = zeros(L+1, n-L);
for i=1:n-Lprice_n(:,i) = price(i:i+L);
end%% 划分训练、测试样本
% 将前280份数据划分为训练样本
% 后51份数据划分为测试样本trainx = price_n(1:6, 1:280);
trainy = price_n(7, 1:280);testx = price_n(1:6, 281:end);
testy = price_n(7, 281:end);%% 创建Elman神经网络% 包含15个神经元,训练函数为traingdx
net=elmannet(1:2,15,'traingdx');% 设置显示级别
net.trainParam.show=1;% 最大迭代次数为2000次
net.trainParam.epochs=2000;% 误差容限,达到此误差就可以停止训练
net.trainParam.goal=0.00001;% 最多验证失败次数
net.trainParam.max_fail=5;% 对网络进行初始化
net=init(net);%% 网络训练%训练数据归一化
[trainx1, st1] = mapminmax(trainx);
[trainy1, st2] = mapminmax(trainy);% 测试数据做与训练数据相同的归一化操作
testx1 = mapminmax('apply',testx,st1);
testy1 = mapminmax('apply',testy,st2);% 输入训练样本进行训练
[net,per] = train(net,trainx1,trainy1);%% 测试。输入归一化后的数据,再对实际输出进行反归一化% 将训练数据输入网络进行测试
train_ty1 = sim(net, trainx1);
train_ty = mapminmax('reverse', train_ty1, st2);% 将测试数据输入网络进行测试
test_ty1 = sim(net, testx1);
test_ty = mapminmax('reverse', test_ty1, st2);%% 显示结果
% 1.显示训练数据的测试结果
figure(1)
x=1:length(train_ty);

四、运行结果




五、matlab版本及参考文献

1 matlab版本
2014a

2 参考文献
[1] 包子阳,余继周,杨杉.智能优化算法及其MATLAB实例(第2版)[M].电子工业出版社,2016.
[2]张岩,吴水根.MATLAB优化算法源代码[M].清华大学出版社,2017.
[3]周品.MATLAB 神经网络设计与应用[M].清华大学出版社,2013.
[4]陈明.MATLAB神经网络原理与实例精解[M].清华大学出版社,2013.
[5]方清城.MATLAB R2016a神经网络设计与应用28个案例分析[M].清华大学出版社,2018.

【房价预测】基于matlab Elman神经网络开盘价预测【含Matlab源码 708期】相关推荐

  1. 【Matlab电力负荷预测】粒子群优化支持向量机短期电力负荷预测【含GUI源码 751期】

    一.代码运行视频(哔哩哔哩) [Matlab电力负荷预测]粒子群优化支持向量机短期电力负荷预测[含GUI源码 751期] 二.matlab版本及参考文献 1 matlab版本 2014a 2 参考文献 ...

  2. 【Matlab人脸识别】BP神经网络人脸识别(含识别率)【含GUI源码 891期】

    一.代码运行视频(哔哩哔哩) [Matlab人脸识别]BP神经网络人脸识别(含识别率)[含GUI源码 891期] 二.matlab版本及参考文献 1 matlab版本 2014a 2 参考文献 [1] ...

  3. 【Matlab树叶分类】BP神经网络植物叶片分类【含GUI源码 916期】

    一.代码运行视频(哔哩哔哩) [Matlab树叶分类]BP神经网络植物叶片分类[含GUI源码 916期] 二.matlab版本及参考文献 1 matlab版本 2014a 2 参考文献 [1] 蔡利梅 ...

  4. 【Matlab验证码识别】遗传算法和最大熵优化+大津法(OTSU)+自定义阈值数字验证码识别【含GUI源码 1694期】

    一.代码运行视频(哔哩哔哩) [Matlab验证码识别]遗传算法和最大熵优化+大津法(OTSU)+自定义阈值数字验证码识别[含GUI源码 1694期] 二.matlab版本及参考文献 1 matlab ...

  5. 【Matlab人脸识别】形态学教室人数统计(带面板)【含GUI源码 1703期】

    一.代码运行视频(哔哩哔哩) [Matlab人脸识别]形态学教室人数统计(带面板)[含GUI源码 1703期] 二.matlab版本及参考文献 1 matlab版本 2014a 2 参考文献 [1]孟 ...

  6. 【Matlab人脸识别】人脸实时检测与跟踪【含GUI源码 673期】

    一.代码运行视频(哔哩哔哩) [Matlab人脸识别]人脸实时检测与跟踪[含GUI源码 673期] 二.matlab版本及参考文献 1 matlab版本 2014a 2 参考文献 [1]孟逸凡,柳益君 ...

  7. 【Matlab身份证识别】身份证号码识别【含GUI源码 014期】

    一.代码运行视频(哔哩哔哩) [Matlab身份证识别]身份证号码识别[含GUI源码 014期] 二.matlab版本及参考文献 1 matlab版本 2014a 2 参考文献 [1] 蔡利梅.MAT ...

  8. 【Matlab生物电信号】生物电信号仿真【含GUI源码 684期】

    一.代码运行视频(哔哩哔哩) [Matlab生物电信号]生物电信号仿真[含GUI源码 684期] 二.matlab版本及参考文献 1 matlab版本 2014a 2 参考文献 [1]董兵,超于毅,李 ...

  9. 【Matlab语音分析】语音信号分析【含GUI源码 1718期】

    一.代码运行视频(哔哩哔哩) [Matlab语音分析]语音信号分析[含GUI源码 1718期] 二.matlab版本及参考文献 1 matlab版本 2014a 2 参考文献 [1]韩纪庆,张磊,郑铁 ...

  10. 【Matlab图像融合】小波变换遥感图像融合【含GUI源码 744期】

    一.代码运行视频(哔哩哔哩) [Matlab图像融合]小波变换遥感图像融合[含GUI源码 744期] 二.matlab版本及参考文献 1 matlab版本 2014a 2 参考文献 [1] 包子阳,余 ...

最新文章

  1. linux安装.net core3.0,树莓派4安装net core3.0环境
  2. python学习笔记(装饰器、迭代器生成器、内置函数、软件目录开发规范)
  3. Java按空白部分切分图片
  4. 全国计算机等级考试题库二级C操作题100套(第48套)
  5. 哪些因素造成外贸网站没效果?
  6. Spring定时任务@scheduled多线程的使用(@Async注解)
  7. python __file__ is not defined 解决方法
  8. Python星号表达式
  9. HTML 编辑器简介
  10. 各地前端工资是多少?三线城市的前端有多少
  11. java打字小游戏_JAVA打字小游戏
  12. spilt的用法小结
  13. (学习笔记)OrCAD进行DRC时报错以及解决办法
  14. JavaScript我的常用函数库
  15. 去重的几种方法(部分)
  16. Windows 使用QT读取IP地址并修改IP地址
  17. 为什么懂得很多道理,却依然过不好这一生
  18. 全国行政区域api 最新最全的全国行政区域查询
  19. 心疼!内蒙古一4岁男孩在幼儿园被老师打,园方不承认施暴
  20. 2022-3-29 Leetcode 06.整数转换

热门文章

  1. C# 中使用反射的优缺点
  2. homework2:根据已知代码,回答问题
  3. 清北第一套题(zhx)
  4. 《JavaScript设计模式》读书笔记模板方法模式
  5. 安卓boot.img文件详细介绍-解包,编辑,打包
  6. 【点滴】向Sql Express数据库文件中注册Asp.NET 2.0用户管理模块
  7. Session登陆后丢失的解决办法。
  8. 清华大学中国人工智能学会:2019人工智能发展报告
  9. WinEdt Latex 插入特殊字符
  10. VRTK HTC手柄发出射线,瞬移,选择物体 VRTK和steamVR对应版本