數學建模實驗四:Matlab神經網絡以及應用于汽油辛烷值預測_第1頁
數學建模實驗四:Matlab神經網絡以及應用于汽油辛烷值預測_第2頁
數學建模實驗四:Matlab神經網絡以及應用于汽油辛烷值預測_第3頁
數學建模實驗四:Matlab神經網絡以及應用于汽油辛烷值預測_第4頁
數學建模實驗四:Matlab神經網絡以及應用于汽油辛烷值預測_第5頁
已閱讀5頁,還剩33頁未讀 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

數學建模實驗四:Matlab神經網絡以及應用于汽油辛烷值預測數學建模實驗四:Matlab神經網絡以及應用于汽油辛烷值預測數學建模實驗四:Matlab神經網絡以及應用于汽油辛烷值預測數學建模實驗四:Matlab神經網絡以及應用于汽油辛烷值預測編制僅供參考審核批準生效日期地址:電話:傳真:郵編:實驗四:Matlab神經網絡以及應用于汽油辛烷值預測專業年級:2014級信息與計算科學1班姓名:黃志銳學號:0110一、實驗目的1.掌握MATLAB創建BP神經網絡并應用于擬合非線性函數2.掌握MATLAB創建REF神經網絡并應用于擬合非線性函數3.掌握MATLAB創建BP神經網絡和REF神經網絡解決實際問題4.了解MATLAB神經網絡并行運算二、實驗內容1.建立BP神經網絡擬合非線性函數第一步數據選擇和歸一化根據非線性函數方程隨機得到該函數的2000組數據,將數據存貯在文件中(下載后拷貝到Matlab當前目錄),其中input是函數輸入數據,output是函數輸出數據。從輸入輸出數據中隨機選取1900中數據作為網絡訓練數據,100組作為網絡測試數據,并對數據進行歸一化處理。第二步建立和訓練BP神經網絡構建BP神經網絡,用訓練數據訓練,使網絡對非線性函數輸出具有預測能力。第三步BP神經網絡預測用訓練好的BP神經網絡預測非線性函數輸出。第四步結果分析通過BP神經網絡預測輸出和期望輸出分析BP神經網絡的擬合能力。詳細MATLAB代碼如下::123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354clc;clear%%訓練數據預測數據提取及歸一化%載入輸入輸出數據loaddatainputoutput%從1到2000間隨機排序k=rand(1,2000);[m,n]=sort(k);%找出訓練數據和預測數據input_train=input(n(1:1900),:)';output_train=output(n(1:1900));input_test=input(n(1901:2000),:)';output_test=output(n(1901:2000));%選連樣本輸入輸出數據歸一化[inputn,inputps]=mapminmax(input_train);[outputn,outputps]=mapminmax(output_train);%%構建和訓練BP神經網絡%BP神經網絡構建net=newff(inputn,outputn,5);%網絡參數配置(迭代次數,學習率,目標)=100;=;=;%網絡訓練,并記錄訓練時間tic;%starttimerecordnet=train(net,inputn,outputn);t1=toc;%(end-start)timerecorddisp(['神經網絡的訓練時間為',num2str(t1),'秒']);%%BP網絡預測%預測數據歸一化inputn_test=mapminmax('apply',input_test,inputps);%網絡預測輸出an=sim(net,inputn_test);%網絡輸出反歸一化BPoutput=mapminmax('reverse',an,outputps);%%結果分析figure(1);plot(BPoutput,':og');holdon;plot(output_test,'-*');legend('預測輸出','期望輸出');title('BP網絡預測輸出','fontsize',12);ylabel('函數輸出','fontsize',12);xlabel('樣本','fontsize',12);%預測誤差error=BPoutput-output_test;figure(2);plot(error,'-*');title('BP神經網絡預測誤差','fontsize',12);ylabel('誤差','fontsize',12);xlabel('樣本','fontsize',12);figure(3);plot((output_test-BPoutput)./BPoutput,'-*');title('BP神經網絡預測誤差百分比');errorsum=sum(abs(error));MATLAB代碼運行結果截圖如下所示:MATLAB代碼運行結果如下所示:圖1BP神經網絡預測輸出圖示圖2BP神經網絡預測誤差圖示圖3BP神經網絡預測誤差百分比圖示2.建立RBF神經網絡擬合非線性函數 第一步建立exactRBF神經網絡擬合,觀察擬合效果詳細MATLAB代碼如下::1234567891011121314151617181920212223242526%RBF網絡的回歸--非線性函數回歸的實現%建立exactRBF神經網絡擬合,觀察擬合效果clear;clc%%產生輸入輸出數據interval=;x1=:interval:;x2=:interval:;%按照函數先求得相應的函數值,作為網絡的輸出。F=20+x1.^2-10*cos(2*pi*x1)+x2.^2-10*cos(2*pi*x2);%%網絡建立和訓練%網絡建立輸入為[x1;x2],輸出為F。Spread使用默認。net=newrbe([x1;x2],F);%%網絡的效果驗證%將原數據回代,測試網絡效果:ty=sim(net,[x1;x2]);%使用圖像來看網絡對非線性函數的擬合效果figure();plot3(x1,x2,F,'rd');holdon;plot3(x1,x2,ty,'b-.');view(113,36);title('可視化的方法觀察準確RBF神經網絡的擬合效果');xlabel('x1');ylabel('x2');zlabel('F');gridon;MATLAB代碼運行結果如下所示:圖4RBF神經網絡擬合效果圖第二步建立approximateRBF神經網絡擬合詳細MATLAB代碼如下::12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849%RBF網絡的回歸--非線性函數回歸的實現%建立approximateRBF神經網絡擬合clear;clc%%產生訓練樣本(訓練輸入,訓練輸出)%ld為樣本例數ld=400;x=rand(2,ld);%將x轉換到[]之間x=**2;x1=x(1,:);x2=x(2,:);%計算網絡輸出F值F=20+x1.^2-10*cos(2*pi*x1)+x2.^2-10*cos(2*pi*x2);%%建立RBF神經網絡%采用approximateRBF神經網絡。spread為默認值net=newrb(x,F);%%建立測試樣本%generatethetestingdatainterval=;[i,j]=meshgrid:interval:;row=size(i);tx1=i(:);tx1=tx1';tx2=j(:);tx2=tx2';tx=[tx1;tx2];%%使用建立的RBF網絡進行模擬,得出網絡輸出ty=sim(net,tx);%%使用圖像,畫出3維圖%真正的函數圖像interval=;[x1,x2]=meshgrid:interval:;F=20+x1.^2-10*cos(2*pi*x1)+x2.^2-10*cos(2*pi*x2);subplot(1,3,1);mesh(x1,x2,F);zlim([0,60]);title('真正的函數圖像')%網絡得出的函數圖像v=reshape(ty,row);subplot(1,3,2);mesh(i,j,v);zlim([0,60]);title('RBF神經網絡結果')%誤差圖像subplot(1,3,3);mesh(x1,x2,F-v);zlim([0,60]);title('誤差圖像');set(gcf,'position',[300,250,900,400]);MATLAB代碼運行結果截圖如下所示:MATLAB代碼運行結果如下所示:圖5RBF神經網絡擬合結果圖示討論題:對于非線性函數(1)分別建立BP神經網絡和RBF神經網絡擬合并比較兩者的性能差異。(2)就BP神經網絡驗證單線程運算和并行運算的運行時間差異。(1)詳細MATLAB代碼如下::12functiony=f(x1,x2)y=(x1.^2+x2.^2).^.*(sin(50*(x1.^2+x2.^2).^.^2+1);:123456789101112131415161718192021222324252627282930313233343536373839404142clc;clear%%產生訓練樣本(訓練輸入,訓練輸出)a=-2;b=2;interval=;temp=a:interval:b;x=repmat(temp,2,1);y=f(x(1,:),x(2,:));%%訓練數據歸一化input_train=x;output_train=y;[input_n,input_ps]=mapminmax(input_train);[output_n,output_ps]=mapminmax(output_train);%%構建和訓練BP神經網絡%BP神經網絡構建hiddenSizes=500;trainFcn='trainlm';%net=newff(input_n,output_n,hiddenSizes);net=fitnet(hiddenSizes,trainFcn);=300;=;=;net=train(net,input_n,output_n);%%BP網絡預測temp=a:interval:b;input_test=repmat(temp,2,1);output_test=f(input_test(1,:),input_test(2,:));inputn_test=mapminmax('apply',input_test,input_ps);prediction=sim(net,inputn_test);BP_output=mapminmax('reverse',prediction,output_ps);%%結果分析%使用圖像來看網絡對非線性函數的擬合效果figure();plot3(x(1,:),x(2,:),y,'rd');holdon;plot3(input_test(1,:),input_test(2,:),BP_output,'b-.');view(113,36);title('可視化的方法觀察BP神經網絡的擬合效果');xlabel('x1');ylabel('x2');zlabel('y');gridon;MATLAB代碼運行結果截圖如下所示:MATLAB代碼運行結果如下所示:圖6BP神經網絡擬合效果圖詳細MATLAB代碼如下::12functiony=f(x1,x2)y=(x1.^2+x2.^2).^.*(sin(50*(x1.^2+x2.^2).^.^2+1);:1234567891011121314151617181920212223242526clc;clear%%產生訓練樣本(訓練輸入,訓練輸出)a=-2;b=2;interval=;temp=a:interval:b;x=repmat(temp,2,1);y=f(x(1,:),x(2,:));%%構建和訓練RBF神經網絡%RBF神經網絡構建spread=;net=newrbe([x(1,:);x(2,:)],y);%%RBF網絡預測ty=sim(net,x);%%結果分析%使用圖像來看網絡對非線性函數的擬合效果figure();plot3(x(1,:),x(2,:),y,'rd');holdon;plot3(x(1,:),x(2,:),ty,'b-.');view(113,36);title('可視化的方法觀察RBF神經網絡的擬合效果');xlabel('x1');ylabel('x2');zlabel('y');gridon;MATLAB代碼運行結果如下所示:圖7RBF神經網絡擬合效果圖詳細MATLAB代碼如下::12functiony=f(x1,x2)y=(x1.^2+x2.^2).^.*(sin(50*(x1.^2+x2.^2).^.^2+1);:1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980clc;clear%%產生訓練樣本(訓練輸入,訓練輸出)%sample為樣本例數sample=5000;%產生2*sample的隨機矩陣,隨機數在區間[a,b]中a=-2;b=2;x=a+(b-a).*rand(2,sample);%計算網絡輸出y值y=f(x(1,:),x(2,:));%%訓練數據歸一化input_train=x;output_train=y;[input_n,input_ps]=mapminmax(input_train);[output_n,output_ps]=mapminmax(output_train);%%構建和訓練BP神經網絡%BP神經網絡構建hiddenSizes=500;trainFcn='trainlm';%net=newff(input_n,output_n,hiddenSizes);net=fitnet(hiddenSizes,trainFcn);=300;=;=;net=train(net,input_n,output_n);%%BP網絡預測input_test=a+(b-a).*rand(2,sample*;output_test=f(input_test(1,:),input_test(2,:));inputn_test=mapminmax('apply',input_test,input_ps);prediction=sim(net,inputn_test);BP_output=mapminmax('reverse',prediction,output_ps);%%結果分析figure(1);plot(BP_output,':og');holdon;plot(output_test,'-*');legend('預測輸出','期望輸出');title('BP網絡預測輸出','fontsize',12);ylabel('函數輸出','fontsize',12);xlabel('樣本','fontsize',12);%預測誤差error=BP_output-output_test;figure(2);plot(error,'-*');title('BP神經網絡預測誤差','fontsize',12);ylabel('誤差','fontsize',12);xlabel('樣本','fontsize',12);figure(3);plot((output_test-BP_output)./BP_output,'-*');title('BP神經網絡預測誤差百分比');errorsum=sum(abs(error));%%使用圖像,畫出3維圖%真正的函數圖像interval=;[x1,x2]=meshgrid(a:interval:b);y=f(x1,x2);subplot(1,3,1);mesh(x1,x2,y);zlim([-2,5]);title('真正的函數圖像')%網絡得出的函數圖像tx1=x1(:);tx1=tx1';tx2=x2(:);tx2=tx2';input_BP=[tx1;tx2];inputn_BP=mapminmax('apply',input_BP,input_ps);prediction_BP=sim(net,inputn_BP);output_BP=mapminmax('reverse',prediction_BP,output_ps);v=reshape(output_BP,size(x1));subplot(1,3,2);mesh(x1,x2,v);zlim([-2,5]);title('BP神經網絡結果')%誤差圖像subplot(1,3,3);mesh(x1,x2,y-v);zlim([-2,5]);title('?ó2?í???');set(gcf,'position',[300,250,900,400]);MATLAB代碼運行結果如下所示:圖8BP神經網絡預測輸出圖示圖9BP神經網絡預測誤差圖示圖10BP神經網絡擬合效果圖詳細MATLAB代碼如下::12functiony=f(x1,x2)y=(x1.^2+x2.^2).^.*(sin(50*(x1.^2+x2.^2).^.^2+1);:12345678910111213141516171819202122232425262728293031323334353637383940414243444546clc;clear%%產生訓練樣本(訓練輸入,訓練輸出)%sample為樣本例數sample=5000;%產生2*sample的隨機矩陣,隨機數在區間[a,b]中a=-2;b=2;x=a+(b-a).*rand(2,sample);%計算網絡輸出y值y=f(x(1,:),x(2,:));F=y;%%建立RBF神經網絡spread=;net=newrb(x,F,spread);%%建立測試樣本interval=;[i,j]=meshgrid(a:interval:b);row=size(i);tx1=i(:);tx1=tx1';tx2=j(:);tx2=tx2';tx=[tx1;tx2];%%使用建立的RBF網絡進行模擬,得出網絡輸出ty=sim(net,tx);%%使用圖像,畫出3維圖%真正的函數圖像interval=;[x1,x2]=meshgrid(a:interval:b);F=f(x1,x2);subplot(1,3,1);mesh(x1,x2,F);zlim([-2,5]);title('真正的函數圖像')%網絡得出的函數圖像v=reshape(ty,row);subplot(1,3,2);mesh(i,j,v);zlim([-2,5]);title('RBF神經網絡結果')%誤差圖像subplot(1,3,3);mesh(x1,x2,F-v);zlim([-2,5]);title('誤差圖像');set(gcf,'position',[300,250,900,400]);MATLAB代碼運行結果如下所示:圖11RBF神經網絡擬合效果圖 通過分析上述結果可知,對于非線性函數RBF神經網絡(spread值為)的擬合效果比BP神經網絡(隱含層神經元的個數為500個)的擬合效果更好,且RBF神經網絡性能更佳(耗時更少)。但RBF神經網絡擬合結果中,擬合空間的邊緣部分效果出現誤差十分大的情況,這是由于RBF神經網絡的結構特性所造成的。(2)詳細MATLAB代碼如下::12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849clc;clear%%產生訓練樣本(訓練輸入,訓練輸出)a=-2;b=2;interval=;temp=a:interval:b;x=repmat(temp,2,1);y=f(x(1,:),x(2,:));%%訓練數據歸一化input_train=x;output_train=y;[input_n,input_ps]=mapminmax(input_train);[output_n,output_ps]=mapminmax(output_train);%%構建和訓練單線程BP神經網絡%BP神經網絡構建hiddenSizes=500;trainFcn='trainlm';%net=newff(input_n,output_n,hiddenSizes);net=fitnet(hiddenSizes,trainFcn);=300;=;=;tic;%starttimerecordnet=train(net,input_n,output_n);t1=toc;%(end-start)timerecorddisp(['單線程BP神經網絡的訓練時間為',num2str(t1),'??']);%%單線程BP網絡預測temp=a:interval:b;input_test=repmat(temp,2,1);output_test=f(input_test(1,:),input_test(2,:));inputn_test=mapminmax('apply',input_test,input_ps);tic;%starttimerecordprediction=sim(net,inputn_test);t1=toc;%(end-start)timerecorddisp(['單線程BP神經網絡的預測時間為',num2str(t1),'??']);BP_output=mapminmax('reverse',prediction,output_ps);%%打開MATLABworkersmatlabpoolopen%parpool%檢查worker數量poolsize=matlabpool('size');disp(poolsize);%%構建和訓練多線程BP神經網絡%BP神經網絡構建hiddenSizes=500;trainFcn='trainlm';%net=newff(input_n,output_n,hiddenSizes);net=fitnet(hiddenSizes,trainFcn);=300;=;=;tic;%starttimerecordnet=train(net,input_n,output_n);t1=toc;%(end-start)timerecorddisp(['多線程BP神經網絡的訓練時間為',num2str(t1),'??']);%%多線程BP網絡預測temp=a:interval:b;input_test=repmat(temp,2,1);output_test=f(input_test(1,:),input_test(2,:));inputn_test=mapminmax('apply',input_test,input_ps);tic;%starttimerecordprediction=sim(net,inputn_test,'Useparallel','yes');t1=toc;%(end-start)timerecorddisp(['多線程BP神經網絡的預測時間為',num2str(t1),'??']);BP_output=mapminmax('reverse',prediction,output_ps);matlabpoolcloseMATLAB代碼運行結果截圖如下所示: 通過分析上述結果可知,就BP神經網絡而言,單線程運算和并行運算的運行時間差異十分大,并行運算的訓練時間遠遠少于單線程運算的訓練時間,但并行運算的預測時間多于單線程運算的預測時間。3.應用實例:基于近紅外光譜的汽油辛烷值預測問題描述辛烷值是汽油最重要的品質指標,傳統的實驗室檢測方法存在樣品用量大、測試周期長和費用高等問題,不適用與生產控制,特別是在線測試,今年發展起來的近紅外光譜分析方法(NIR),作為一種快速分析方法,已經廣泛應用于農業、制藥、生物化工、石油產品等領域。其優越性是無損檢測、低成本、無污染、能在線分析,更適合于生產和控制的需要。針對采集得到的60組汽油樣品,利用傅立葉近紅外變換光譜儀對其掃描,掃描范圍為900~1700nm,掃描間隔為2nm,每個樣品的光譜曲線共含有401個波長點。同時,利用傳統實驗室檢測方法測定其辛烷值含量。現要求利用BP神經網絡及RBF神經網絡分別建立汽油樣品近紅外光譜與其辛烷值之間的關系的數學模型,并對模型的性能進行評價。解題思路及步驟依據問題描述中的要求,實現BP神經網絡及RBF神經網絡的模型建立及性能評價,大體上可以分為以下幾個步驟:1)產生訓練集/測試集為了保證建立的模型具有良好的泛化能力,要求訓練集樣本足夠多,且具有良好的代表性。一般認為,訓練集樣本數量占總體樣本數量的2/3~3/4為宜,剩余的1/4~1/3作為測試集樣本。同事,盡量使得訓練集與測試集樣本的分布規律近似相同。2)創建/訓練BP神經網絡創建BP神經網絡需要確定網絡的結構,即需要確定以下幾個參數:輸入變量個數、隱函數層數及個層神經元個數、輸出變量個數。從問題描述中可知,輸入變量個數為401,輸出變量個數為1。隱含層一個(可逼近任意非線性函數),隱含層神經元的個數對BP神經網絡的性能影響較大。若隱含層神經元的個數較少,則網絡不能充分描述輸出和輸入變量之間的關系;相反,若隱含層神經元的個數較多,則會導致網絡的學習時間變長,甚至會出現過擬合的問題。一般地,確定隱含層神經元個數的方法實在經驗公式的基礎上,對比隱含層不同神經元個數對模型性能的影響,從而進行選擇。網絡結構確定后,設置相關訓練參數(如訓練次數、學習率等),便可以對網絡進行訓練。3)創建/訓練RBF神經網絡創建RBF神經網絡時需要考慮spread的值對網絡性能的影響。一般而言,spread的值越大,函數的擬合就越平滑。然而,過大的spread值將需要非常多的神經元以適應函數的快速變化;反之,若spread值太小,則意味著需要許多的神經元來適應函數的緩慢變化,從而導致網絡性能不好。4)仿真測試模型建立后,將測試集的輸入變量送入模型,模型的輸出就是對應的預測結果。5)性能評價通過計算測試集預測值與真實值間的誤差,可以對模型的泛化能力進行評價。在此基礎上,可以進行進一步的研究和改善。MATLAB程序實現第一步產生訓練集/測試集60個樣品的光譜及辛烷值數據保存在文件中,該文件包含兩個變量矩陣:NIR為60行401列的樣品光譜數據,octane為60行1列的辛烷值數據。這里采用隨機法產生訓練集和測試集,隨機產生50個樣品作為訓練集,剩余的10個樣品作為測試集。第二步創建/訓練BP神經網絡及仿真測試利用MATLAB神經網絡自帶工具箱的函數,可以方便的進行BP神經網絡創建、訓練及仿真測試。在訓練之前,可以對相關的訓練參數進行設置,也可以采取默認設置。第三步創建RBF神經網絡及仿真測試利用MATLAB神經網絡自帶工具箱的函數,可以方便的進行RBF神經網絡創建、訓練及仿真測試。第四步性能評價BP神經網絡及RBF神經網絡仿真測試結束后,通過計算預測值與真實值的偏差情況,可以對網絡的泛化能力。采用兩個評價指標,分別為相對誤差和決定系數,其計算公式分別為,其中()為第個樣品的預測值;為第個樣品的真實值;為樣品數目。相對誤差越小,表明模型的性能越好。決定系數范圍在[0,1]內,越接近于1,表明模型的擬合性能越好,反之,越趨近于0,表明模型的擬合性能越差。第五步繪圖為了更為直觀地對結果進行觀察和分析,以圖片的形式將結果呈現出來。詳細MATLAB代碼如下::12345678910111213141516171819202122232425262728293031323334353637383940414243clearall;clc%%訓練集/測試集產生load;temp=randperm(size(NIR,1));P_train=NIR(temp(1:50),:)';T_train=octane(temp(1:50),:)';P_test=NIR(temp(51:end),:)';T_test=octane(temp(51:end),:)';N=size(P_test,2);%%BP神經網絡創建、訓練及仿真測試net=newff(P_train,T_train,9);=1000;=1e-3;=;net=train(net,P_train,T_train);T_sim_bp=sim(net,P_test);%%RBF神經網絡創建及仿真測試net=newrbe(P_train,T_train,;T_sim_rbf=sim(net,P_test);%%性能評價%相對誤差errorerror_bp=abs(T_sim_bp-T_test)./T_test;error_rbf=abs(T_sim_rbf-T_test)./T_test;%決定系數R^2R2_bp=(N*sum(T_sim_bp.*T_test)-sum(T_sim_bp)*sum(T_test))^2.../((N*sum((T_sim_bp).^2)-(sum(T_sim_bp))^2)...*(N*sum((T_test).^2)-(sum(T_test))^2));R2_rbf=(N*sum(T_sim_rbf.*T_test)-sum(T_sim_rbf)*sum(T_test))^2.../((N*sum((T_sim_rbf).^2)-(sum(T_sim_rbf))^2)...*(N*sum((T_test).^2)-(sum(T_test))^2));%結果對比result_bp=[T_test'T_sim_bp'T_sim_rbf'error_bp'error_rbf'];disp(result_bp);%%繪圖figure();plot(1:N,T_test,'b:*',1:N,T_sim_bp,'r-o',1:N,T_sim_rbf,'k-.^');legend('真實值','BP預測值','RBF預測值');xlabel('預測樣本');ylabel('辛烷值');string={'測試集辛烷值含量預測結果對比(BPvsRBF)';...['R^2='num2str(R2_bp)'(BP)''R^2='num2str(R2_rbf)'(RBF)']};title(string);MATLAB代碼運行結果截圖如下所示:MATLAB代碼運行結果如下所示:圖12測試集辛烷值含量預測結果對比圖討論題:網絡參數的影響及其選擇隱含層神經元的個數對BP神經網絡的性能影響較大。若隱含層神經元的個數較少,則網絡不能充分描述輸出和輸入變量之間的關系;相反,若隱含層神經元的個數較多,則會導致網絡的學習時間變長,甚至會出現過擬合的問題。一般地,確定隱含層神經元個數的方法實在經驗公式的基礎上,對比隱含層不同神經元個數對模型性能的影響,從而進行選擇。具體方法:隱含層神經元個數分別3~10個時,程序運行10次,求出對應的決定系數的平均值。平均值最大對應的隱含層神經元個數即為最佳選擇。(自己編程求出最佳值,并畫出隱含層神經元個數---決定系數圖形)對于RBF神經網絡,一般而言,spread的值越大,函數的擬合就越平滑。然而,過大的spread值將需要非常多的神經元以適應函數的快速變化;反之,若spread值太小,則意味著需要許多的神經元來適應函數的緩慢變化,從而導致網絡性能不好。具體方法:當spread值分別為,,…,,1時程序運行10次,求出對應的決定系數的平均值。平均值最大對應的spread值即為最佳選擇。(自己編程求出最佳值,并畫出spread值---決定系數圖形)詳細MATLAB代碼如下::12345678910111213141516171819202122232425262728293031323334353637383940414243clearall;clc%%訓練集/測試集產生load;temp=randperm(size(NIR,1));P_train=NIR(temp(1:50),:)';T_train

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論