matlab预测误差,Matlab的神经网络预测误差比较大,该怎样调整
各位高手前輩們:
你們好!
我剛剛接觸神經(jīng)網(wǎng)絡(luò)不久,在用RBF網(wǎng)絡(luò)來進行溫度預測時,得到的預測誤差比較大。現(xiàn)在調(diào)節(jié)的方法只是調(diào)整SPREAD值,結(jié)果很不理想!我想知道是什么原因產(chǎn)生這么大的誤差,溫度相差40度,是不是程序有什么問題,希望各位前輩能幫我指出哪部分有錯誤,提出一些解決的方法,我在此表示真誠的感謝!程序如下!
謝謝大家了!
%產(chǎn)生數(shù)據(jù)
clc;
clear;
%generate the learing data
x=[0 20 40 60 80 100 120 140 160 180 200 220 240 260 280 300 320 340 360 380 400 420 440;
3 5 7 8 10 11 12 13 13 13 15 16 18 19 19 19 19 20 20 21 21 21 22;
41 41 43 44 49 64 70 81 89 95 100 104 108 111 112 111 122 127 126 125 126 125 129];
F=[40.6 42.2 41.2 42.8 44.8 55.8 63.2 58.6 65.4 70.5 76.2 83.8??82.8 85.2 78.8 92 97 102.2 106.9 98.9 104.8 106.2 108];
x_train=x(:,1:20);F_train=F(:,1:20);
x_test=x(:,21:23);F_test=F(:,21:23);
%訓練數(shù)據(jù)歸一化處理
for i=1:3
x1_train(i,:)=(x_train(i,:)-min(x(i,:)))/(max(x(i,:))-min(x(i,:)))
end
F1=F_train/max(F);
%測試數(shù)據(jù)歸一化處理
for i=1:3
x1_test(i,:)=(x_test(i,:)-min(x(i,:)))/(max(x(i,:))-min(x(i,:)))
end
%% 建立RBF網(wǎng)絡(luò)
err_goal=0.0001;
spread=0.7;
df=1;
mn=100;
net=newrb(x1_train,F1,err_goal,spread,mn,df);
Y1=sim(net,x1_train);
Y2=sim(net,x1_test);
%訓練數(shù)據(jù)反歸一化處理
for i=1:3
x2_train(i,:)=x1_train(i,:)*(max(x(i,:))-min(x(i,:)))+min(x(i,:))
end
Y3=Y1*max(F);
%測試數(shù)據(jù)反歸一化處理
for i=1:3
x_test(i,:)=x_test(i,:)*(max(x_test(i,:))-min(x_test(i,:)))+min(x_test(i,:))
end
Y4=Y2*max(F);
E=F_train-Y1;
SSE=sse(E);
MSE=mse(E);
%擬合圖
figure(1);
plot(F_train);
hold on;
plot(Y3,'r:');
title('RBF網(wǎng)絡(luò)擬合曲線圖');
legend('實際值','預測值');
ylabel('表面溫度');
xlabel('輸入樣本點');
figure(2);
plot(F_test,'-*');
hold on;
plot(Y4,'r:');
legend('期望輸出','預測輸出')
title('RBF網(wǎng)絡(luò)預測曲線圖')
ylabel('表面溫度')
xlabel('樣本')
總結(jié)
以上是生活随笔為你收集整理的matlab预测误差,Matlab的神经网络预测误差比较大,该怎样调整的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: json_encode函数参数详解
- 下一篇: matlab里的subs,急询:Matl