构造bp神经网络及matlab代码问题

发布网友 发布时间:2022-04-22 06:27

我来回答

2个回答

热心网友 时间:2024-02-02 12:09

你这是多输入单输出问题,隐层神经元数量用试凑法。样本数量不需要那么多,一百条差不多了。附件是一个预测案例代码供参考。


newff函数的格式为:

net=newff(PR,[S1 S2 ...SN],{TF1 TF2...TFN},BTF,BLF,PF),函数newff建立一个可训练的前馈网络。输入参数说明:

PR:Rx2的矩阵以定义R个输入向量的最小值和最大值;

Si:第i层神经元个数;

TFi:第i层的传递函数,默认函数为tansig函数;

BTF:训练函数,默认函数为trainlm函数;

BLF:权值/阀值学习函数,默认函数为learngdm函数;

PF:性能函数,默认函数为mse函数。

追问我感觉这种预测规律还是好找的 所以是不是传递函数 训练函数用默认的就行, 还是也得一个一个试看看哪个好呀? 我这类预测是不是简单的说就是“通过样本数据的运算找出 一个模型函数,函数的pm2.5 pm10 co so2 no2 五个相当于自变量, 而aqi指数相当于因变量。 如果用这个模型对未来aqi指数预测的话 ,必须得知道要预测的那天的pm2.5 pm10 等五个才行吧?”

追答是的,正是这个意思。学习函数建议你用默认,训练函数用trainlm或traingdm。这个不用试,需要试凑的是隐层神经元节点数。

热心网友 时间:2024-02-02 12:09

newff 创建前向BP网络格式:
net = newff(PR,[S1 S2...SNl],{TF1 TF2...TFNl},BTF,BLF,PF)
其中:PR —— R维输入元素的R×2阶最大最小值矩阵; Si —— 第i层神经元的个数,共N1层; TFi——第i层的转移函数,默认‘tansig’; BTF—— BP网络的训练函数,默认‘trainlm’; BLF—— BP权值/偏差学习函数,默认’learngdm’ PF ——性能函数,默认‘mse’;(误差)
e.g.
P = [0 1 2 3 4 5 6 7 8 9 10];T = [0 1 2 3 4 3 2 1 2 3 4];
net = newff([0 10],[5 1],{'tansig' 'purelin'});net.trainparam.show=50; %每次循环50次net.trainParam.epochs = 500; %最大循环500次
net.trainparam.goal=0.01; %期望目标误差最小值
net = train(net,P,T); %对网络进行反复训练
Y = sim(net,P)Figure % 打开另外一个图形窗口
plot(P,T,P,Y,'o')

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com