
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')
给个例子给你参考%% 原始数据
P =[2056 2395 26002395 2600 22982600 2298 16342298 1634 1600...
1634 1600 18731600 1873 14781873 1478 19001478 1900 1500...
1900 1500 2046]
%% 目标数据
T = [2298 1634 1600 1873 1487 1900 1500 2046 1556]
%% 对原始数据和目标数据进行归一化处理
pmax = max(P)
pmax1 = max(pmax)
pmin = min(P)
pmin1 = min(pmin)
for i = 1 : 9
P1(i, :) = (P(i, :) - pmin1) / (pmax1 - pmin1)
T1(i) = (T(i) - pmin1) / (pmax1 - pmin1)
end
%% 建立BP网络
net = newff(P1', T1, [3 7], {'tansig' 'logsig'}, 'traingd')
%% 设置网络参数并进行训练
% for i = 1 : 9
net.trainParam.epochs = 15000
net.trainParam.goal = 0.00001
net.trainParam.lr = 0.1
net = train(net, P1(i,:)', T1(i))
% end
%% 将10-12月的数据输入网络进行预测来年一月的销售量(归一化后的数值)
y = sim(net, [1500 2046 1556]')
%% 反归一化求出来年一月份的销售量
y1 = y * (pmax1 - pmin1) + pmin1
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)