资源简介
基于Elman神经网络的房价预测。

代码片段和文件信息
% elm_stockpredict.m
%% 清除工作空间中的变量和图形
clearclc
close all
%% 1.加载337期上证指数开盘价格
load matlab.mat
whos
rng(1)
%% ARMA模型
z=iddata(y1);
m=armax(z(1:19)‘na‘2‘nc‘1);
yp = predict(my11);
yp=yp‘;
yp=yp(:157:end);
%% 2.构造样本集
% 数据个数
price=y1;
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-L
price_n(:i) = price(i:i+L);
end
%% 划分训练、测试样本
% 将前280份数据划分为训练样本
% 后51份数据划分为测试样本
trainx = price_n(1:6 1:150);
trainy = price_n(7 1:150);
testx = price_n(1:6 151:end);
testy = price_n(7 151:end);
%% 创建Elman神经网络
% 包含15个神经元,训练函数为traingdx
net=elmannet(1:215‘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‘testxst1);
testy1 = mapminmax(‘apply‘testyst2);
% 输入训练样本进行训练
[netper] = train(nettrainx1trainy1);
%% 测试。输入归一化后的数据,再对实际输出进行反归一化
% 将训练数据输入网络进行测试
train_ty1 = sim(net trainx1);
train_ty = mapminmax(‘reverse‘ train_ty1 st2);
% 将测试数据输入网络进行测试
test_ty1 = sim(net testx1);
test_ty = mapminmax(‘reverse‘ test_ty1 st2);
%% 显示结果
% 2.显示测试数据的测试结果
figure(1)
x=1:length(test_ty);
% 显示真实值
plot(xtesty‘b-‘);
hold on
% 显示神经网络的输出值
plot(xtest_ty‘r--‘)
% 显示ARMA的输出值
plot(xyp‘k--‘)
legend(‘real price‘‘prediction price of Elman‘‘prediction price of ARMA‘)
title(‘Test Results‘);
% 显示均方误差
mse2 = mse(test_ty - testy);
fprintf(‘ Elman_mse = \n %f\n‘ mse2)
mse3 = mse(yp - testy);
fprintf(‘ ARMA_mse = \n %f\n‘ mse3)
% 显示相对误差
disp(‘ 相对误差1:‘)
fprintf(‘%f ‘ (test_ty - testy)./testy );
fprintf(‘\n‘)
disp(‘ 相对误差2:‘)
fprintf(‘%f ‘ (yp - testy)./testy );
fprintf(‘\n‘)
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 86239 2018-03-27 18:15 matlab.mat
文件 2349 2018-04-16 20:44 elm_stockpredict.m
----------- --------- ---------- ----- ----
88588 2
- 上一篇:矩阵欧式距离矩阵
- 下一篇:Matlab坐标提取
相关资源
- 一类时间序列的多重分形分析
- matlab时间序列分析工具程序
- MATLAB_时间序列
- 房价预测模型算法源代码
- MATLAB在时间序列分析中的应用_张善文
- 时间序列教程
- MATLAB在时间序列分析中的应用-张善文
- 时间序列分析实验报告
- 基于Matlab的ARMA模型时间序列分析法仿
- 基于MATLAB的时间序列分析建模、预测
- 时间序列实验报告
- matlab DFA降趋脉动分析算法实现
- Elman神经网络的数据预测—电力负荷预
- 基于Elman神经网络的电力负荷预测
- 时间序列模型ARIMA的讲解与matlab代码实
- 混沌时间序列分析与预测工具箱 开源
- 利用Elman神经网络建立预测模型研究
- kernel adapting filter
- 时间序列的分析——模型的识别与预
- 时间序列分析与matlab实现
- matlab 时间序列分析源代码
- 奇异谱分析
- matlab时间序列工具箱
- 用Runge-Kutta方法求解Mackey-Glass时间序列
- 时间序列转换为邻接矩阵
- 基于小波神经网络的时间序列预测的
- 基于bp神经网络的时间序列预测matla
- 基于OLS 算法完成MG 时间序列问题
- MATLAB在时间序列建模预测及程序代码
- 小波神经网络的时间序列预测-短时交
评论
共有 条评论