BP神经网络(基于MATLAB)

clc
clear all

%% 导入数据
load('S_Data.mat')     % 预测S含量所用数据

n = 12;   % n 是自变量的个数
m = 1;    % m 是因变量的个数
%% 读取训练数据
train_num = 1600;  %训练样本数
train_Data = S_Data(1:train_num,:);
% 特征值归一化
[train_Input,minI,maxI] = premnmx(train_Data(:,1:n)');
% 构造输出矩阵
[train_Output,minO,maxO] = premnmx(train_Data(:,n+1:end)');

%% 创建神经网络
% net = newff(P,T,S,TF,BTF,BLF,PF)
% net = newff(P,T,[隐层的神经元的个数,输出层的神经元的个数],{隐层神经元的传输函数,输出层的传输函数},'反向传播的训练函数','学习函数','性能函数')
% P为输入矩阵,T为期望输出矩阵
% TF为神经网络的传输函数,默认为'tansig'函数为隐层的传输函数,purelin函数为输出层的传输函数
% 一般在这里还有其他的传输的函数一般的如下,如果预测出来的效果不是很好,可以调节
% TF1 = 'tansig';TF2 = 'logsig';
% TF1 = 'logsig';TF2 = 'purelin';
% TF1 = 'logsig';TF2 = 'logsig';
% TF1 = 'purelin';TF2 = 'purelin';
TF1='tansig';TF2='purelin';

net = newff( train_Input,train_Output,5,{ TF1,TF2 },'traincgf','learngdm','mse'); 

 %%%%%%%%%% 设置网络参数 %%%%%%%%%%%
%% 权值赋定值
% [m1,n1]=size(net.IW{1,1});
% net.IW{1,1}=0.3*ones(m1,n1);
% [m2,n2]=size(net.LW{2,1});
% net.LW{2,1}=0.3*ones(m2,n2);
%% 权值赋随机值
 %net.layer
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值