微信:HuangL1121
基于BP神经网络的高性能股票价格预测系统
BP神经网络的代表者是D.Rumelhart和J.McCelland,“反向传播(backpropagation)”一词的使用出现在1985年后,它的广泛使用是在1986年D.Rumelhart和J.McCelland所著的Parallel Distributed Processing这本书出版以后。BP神经网络是一种按误差逆传播算法训练的多层前馈网络,是目前应用最广泛的神经网络模型之一。BP网络能学习和存贮大量的输入-输出模式映射关系,而无需事前揭示描述这种映射关系的数学方程。它的学习规则是使用梯度下降法,通过反向传播来不断调整网络的权值和阈值,使网络的误差平方和最小。BP神经网络模型拓扑结构包括输入层(input)、隐层(hidden layer)和输出层(output layer)。
clc;
clear;
%%
fprintf('-BP网络用于模式分类-\n')
% 产生训练样本,每一列为一个样本
fprintf('随机产生训练样本(15组):\n');
P1 = [rand(3,5)+1,rand(3,5)+1,rand(3,5)+2] %生成随机数作为训练样本
fprintf('期望输出:\n');
T1 = [repmat([1;0;0],1,5),repmat([0;1;0],1,5),repmat([0;0;1],1,5)]
% 产生测试样本,每一列为一个样本
fprintf('随机产生测试样本(15组):\n');
P2 = [rand(3,5),rand(3,5)+1,rand(3,5)+2] %生成随机数作为测试样本
fprintf('测试样本期望输出:\n');
T2 = [repmat([1;0;0],1,5),repmat([0;1;0],1,5),repmat([0;0;1],1,5)]
%%
xn_train = P1; % 训练样本
dn_train = T1; % 训练目标
xn_test = P2; % 测试样本
dn_test = T2; % 测试目标
NodeNum = 10; % 隐层节点数
TypeNum = 3; % 输出维数
p1 = xn_train; % 训练输入
t1 = dn_train; % 训练输出
Epochs = 1000; % 训练次数
P = xn_test; % 测试输入
T = dn_test; % 测试输出(真实值)
% 判别函数
TF1 = 'logsig';TF2 = 'purelin';
net = newff(minmax(p1),[NodeNum TypeNum],{TF1 TF2},'trainlm');
net.trainParam.show = 1; % 训练显示间隔
net.trainParam.lr = 0.3; % 学习步长 - traingd,traingdm
net.trainParam.mc = 0.95; % 动量项系数 - traingdm,traingdx
net.trainParam.mem_reduc = 10; % 分块计算Hessian矩阵(仅对Levenberg-Marquardt算法有效)
net.trainParam.epochs = 1000; % 最大训练次数
net.trainParam.goal = 1e-8; % 最小均方误差
net.trainParam.min_grad = 1e-20; % 最小梯度
net.trainParam.time = inf; % 最大训练时间
%%
% 训练与测试
fprintf('开始训练......\n');
net = train(net,p1,t1); % 训练
fprintf('开始测试......\n');
X = sim(net,P); % 测试 - 输出为预测值
fprintf('网络的实际输出结果显示:\n');
X = full(compet(X)) % 竞争输出
%---------------------------------------------------
% 结果统计
fprintf('测试样本正确分类的显示为1,错误为0:\n');
Result = ~sum(abs(X-T2)) % 正确分类显示为1
Percent = sum(Result)/length(Result); % 正确分类率
fprintf('正确分类率:%f\n',Percent);
--------------------------------------------------------------------------------------------------------------
联系:Hslogic
QQ :1224848052
微信:HuangL1121
邮箱:1224848052@qq.com
网站:http://www.mat7lab.com/
--------------------------------------------------------------------------------------------------------------
matlab coursework代做,matlab assignment代做,matlab留学生代做,fpga毕业设计,