1. 程式人生 > >BP神經網路與MATLAB實現案例二

BP神經網路與MATLAB實現案例二

**

歡迎來的菜市場!!!

**
你現在手裡有一袋子雞腿(j),一袋子葡萄(t),要去換人家的西瓜(h)
假設雞腿20元/斤,葡萄17元/斤,西瓜2元/斤
也就是h=(20j+17t)/2
當然我們要通過機器去實現它
給出一組資料

這裡寫圖片描述
讓我們對她進行一系列的程式碼化

[input,ps1]=mapminmax([j;t]);
[target,ps2]=mapminmax(hh); 


net=newff(input,target,6,{'tansig','purelin'},'trainlm');
net.trainParam.epochs=10000;
net.trainParam.goal=0.01
; net.trainParam.lr=0.001; net=train(net,input,target); jj=[3 2 4 1 2 5 4 3]; %雞腿 tt=[5 4 1 2 3 2 3 1];%葡萄 hhh=(20*j+17*t)/3;%西瓜 input1=mapminmax('apply',[jj;tt],ps1);%應用之前的種子歸一化 %預測 yuce=net(input1); bagezhi=mapminmax('reverse',yuce,ps2); set(0,'defaultfigurecolor','w') figure plot(hhh,'*','color'
,[222 87 18]/255);hold on plot(bagezhi,'-o','color',[244 208 0]/255,... 'linewidth',2,'MarkerSize',14,'MarkerEdgecolor',[138 151 123]/255); legend('act','yuce') xlabel('大西瓜大西瓜大西瓜'),ylabel('斤') set(gca, 'Box', 'off', 'TickDir', 'out', 'TickLength', [.02 .02], ... 'XMinorTick', 'on', 'YMinorTick', 'on', 'YGrid'
, 'on', ... 'XColor', [.3 .3 .3], 'YColor', [.3 .3 .3],'LineWidth', 1)

結果如下
不錯不錯
這裡寫圖片描述
3步就到達了期望誤差
這裡寫圖片描述
下面給出圈圈中的預測值的資料和準確值
1.預測資料
這裡寫圖片描述
2.準確值
這裡寫圖片描述
一眼便知,誤差很小,訓練理想,預測較準確
再來看看Validation和test
這裡寫圖片描述
擬合的較為合理,且兩個圖的點沒有出現較少的情況,能說明問題

好了,麻麻再也不用擔心我該換回幾斤的西瓜了!