资源简介
基于BP神经网络的MATLAB回归程序,用于神经网络回归。
代码片段和文件信息
% BP 神经网络用于函数拟合
% 使用平台 - Matlab6.5
% 作者:陆振波,海军工程大学
% 欢迎同行来信交流与合作,更多文章与程序下载请访问我的个人主页
% 电子邮件:luzhenbo@yahoo.com.cn
% 个人主页:http://luzhenbo.88uu.com.cn
clc
clear
close all
%---------------------------------------------------
% 产生训练样本与测试样本
n1 = 1:2:200;
x1 = sin(n1*0.1);
n2 = 2:2:200;
x2 = sin(n2*0.1);
xn_train = n1; % 训练样本,每一列为一个样本
dn_train = x1; % 训练目标,行向量
xn_test = n2; % 测试样本,每一列为一个样本
dn_test = x2; % 测试目标,行向量
%---------------------------------------------------
% 函数接口赋值
NodeNum = 20; % 隐层节点数
TypeNum = 1; % 输出维数
p1 = xn_train; % 训练输入
t1 = dn_train; % 训练输出
Epochs = 1000; % 训练次数
P = xn_test; % 测试输入
T = dn_test; % 测试输出(真实值)
%---------------------------------------------------
% 设置网络参数
%TF1 = ‘tansig‘;TF2 = ‘purelin‘; % 缺省值
%TF1 = ‘tansig‘;TF2 = ‘logsig‘;
TF1 = ‘logsig‘;TF2 = ‘purelin‘;
%TF1 = ‘tansig‘;TF2 = ‘tansig‘;
%TF1 = ‘logsig‘;TF2 = ‘logsig‘;
%TF1 = ‘purelin‘;TF2 = ‘purelin‘;
net = newff(minmax(p1)[NodeNum TypeNum]{TF1 TF2}‘trainlm‘);
% 指定训练参数
%net.trainFcn = ‘trainlm‘; % 内存使用最多(快)
%net.trainFcn = ‘trainbfg‘;
%net.trainFcn = ‘trainrp‘; % 内存使用最少(慢)
%net.trainFcn = ‘traingda‘; % 变学习率
%net.trainFcn = ‘traingdx‘;
net.trainParam.epochs = Epochs; % 最大训练次数
net.trainParam.goal = 1e-8; % 最小均方误差
net.trainParam.min_grad = 1e-20; % 最小梯度
net.trainParam.show = 200; % 训练显示间隔
net.trainParam.time = inf; % 最大训练时间
%---------------------------------------------------
% 训练与测试
net = train(netp1t1); % 训练
X = sim(netP); % 测试 - 输出为预测值
%---------------------------------------------------
% 结果作图
plot(1:length(n2)x2‘r+:‘1:length(n2)X‘bo:‘)
title(‘+为真实值,o为预测值‘)
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 2078 2018-08-28 10:30 NeuralNetwork_BP_Regression.m
- 上一篇:wimax相关仿真matlab仿真
- 下一篇:project 文件滚筒洗衣机项目
评论
共有 条评论