⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 neuralnetwork_bp_regression.m

📁 bp神经网络用于回归的matlab程序
💻 M
字号:
% BP 神经网络用于函数拟合 
% 使用平台 - Matlab6.5
clear
%---------------------------------------------------
% 产生训练样本与测试样本
x_train = 1:2:200;          % 训练样本,每一列为一个样本
y_train = sin(x_train*0.1);          % 训练目标,行向量

x_test = 2:2:200;           % 测试样本,每一列为一个样本
y_test = sin(x_test*0.1);%+x_test/200;           % 测试目标,行向量
%---------------------------------------------------
% 函数接口赋值
NodeNum = 20;           % 隐层节点数 
TypeNum = 1;            % 输出维数
Epochs = 1000;          % 训练次数
%---------------------------------------------------
% 设置网络参数
%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(x_train),[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(net,x_train,y_train);     % 训练
X = sim(net,x_test);             % 测试 - 输出为预测值

%---------------------------------------------------
% 结果作图

plot(1:length(x_test),y_test,'r+:',1:length(x_test),X,'bo:',1:length(x_train),y_train,'k*')
title('+为真实值,o为预测值')

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -