| 8 | 1/1 | 返回列表 |
| 查看: 3196 | 回復(fù): 7 | |||
[求助]
請高手指教如何提高這個BP神經(jīng)網(wǎng)絡(luò)的預(yù)測精度
|
|
請高人指點,以下為我為畢業(yè)論文設(shè)計用MATLAB做的BP神經(jīng)網(wǎng)絡(luò),目前存在兩個問題: 1.模型預(yù)測精度特別低。 我已經(jīng)嘗試改變隱含層節(jié)點數(shù)(從20到100都一一試過了),并將傳遞函數(shù)和訓(xùn)練函數(shù)都做了替換,但均無明顯效果。不知該從何處著手提高模型的預(yù)測和訓(xùn)練精度。 2.每次程序運行完,都要提示錯誤,貌似是運算符合不對,但是改過之后依然有誤。不知該怎么改? clc; clear; close all; warning off; tic; %用2012年數(shù)據(jù)創(chuàng)建模型,2011年數(shù)據(jù)驗證模型精確度。 自動讀取文本文檔,第一行為農(nóng)學(xué)參數(shù),第二行至最后一行都為光譜值。 data1=importdata('E:\2012SR.txt'); data2=importdata('E:\2011SR.txt'); M1 = size(data1,2);%行 Y1 = data1(1,1:M1);%第一行所有列,農(nóng)學(xué)參數(shù),2012 M2 = size(data2,2); Y2 = data2(1,1:M2);%第一行所有列,農(nóng)學(xué)參數(shù),2011 P =data1(2:size(data1,1),: ); %2012年光譜數(shù)據(jù),文本里第二行開始,所有列 T = Y1 ; %2012年農(nóng)學(xué)參數(shù),第一行所有列 N2011_validation=data2(2:size(data2,1),: ) ; %2011年光譜數(shù)據(jù),文本里第二行開始,所有列 N2012_data=P; %2012年光譜數(shù)據(jù) net=newff(P,T,[61 1],{'tansig' 'purelin'},'traingd') t1 = clock; %計時開始 net = fitnet(70); net.trainParam.epochs = 5000; %設(shè)置訓(xùn)練次數(shù) net.trainParam.goal = 0.01; %設(shè)置性能函數(shù)(訓(xùn)練要求精度) net.trainParam.show = 1; %每10顯示 net.trainParam.Ir = 0.005; %設(shè)置學(xué)習(xí)速率 net = train(net,P,T); %訓(xùn)練BP網(wǎng)絡(luò)(P為輸入,T為輸出) datat = etime(clock,t1); Nets = net; view(Nets); %2011年數(shù)據(jù)進行驗證 y = sim(net,N2011_validation); figure; plot(y,'k-x');hold on plot(N2011_validation(1:126),'.k');hold on ymin=-1; ymax=4; axis([0 length(N2011_validation) floor(ymin) ceil(ymax)]); legend('Pridicted values','Measured values'); title('模型預(yù)測結(jié)果, 煙葉N含量'); %2012年數(shù)據(jù)進行測試 y1=sim(net,N2012_data); figure; plot(y1,'k-x'); hold on; plot(N2012_data(1:102),'.k'); ymin=0; ymax=4; axis([0 length(N2012_data) floor(ymin) ceil(ymax)]); legend('Pridicted values','Measured values'); title('模型訓(xùn)練結(jié)果, 煙葉N含量'); %導(dǎo)入到文本文件 fid=fopen('E:\2012SR1.txt','wt'); if fid == -1 error('文件打開失敗'); end fprintf(fid,'實際值 預(yù)測值\n'); A=[N2012_data;y1]; fprintf(fid,'%f %f\n',A); fclose(fid); fid=fopen('E:\2011SR1.txt','wt'); if fid == -1 error('文件打開失敗'); end fprintf(fid,'實際值 預(yù)測值\n'); A=[N2011_validation;y]; fprintf(fid,'%f %f\n',A); fclose(fid); %預(yù)測效果分析 for i = 1:length(N2011_validation); K(i) = abs(y(i) - N2011_validation(i))/(N2011_validation(i)); end RMSE = sqrt(sum((y-N2011_validation)*(y-N2011_validation)')/length(N2011_validation)) E= 1-sum((y-N2011_validation)*(y-N2011_validation)')/sum((N2011_validation-mean(N2011_validation))*(N2011_validation-mean(N2011_validation))') k= average(sum(abs((y-N2011_validation)/(N2011_validation)))) %訓(xùn)練效果分析 for i = 1:length(N2012_data); K_1(i) = average(sum(abs((y1(i)-N2012_data(i))/(N2012_data(i))))); end RMSE_1=sqrt(sum((y1-N2012_data)*(y1-N2012_data)')/length(N2012_data)) E_1= 1-sum((y1-N2012_data)*(y1-N2012_data)')/sum((N2012_data-mean(N2012_data))*(N2012_data-mean(N2012_data))') k_1 = average(sum(abs((y1-N2012_data)/(N2012_data)))) 預(yù)測出來的結(jié)果總是整體偏高,不知道跟我沒有進行數(shù)據(jù)歸一化有沒有關(guān)系?如果進行數(shù)據(jù)歸一化和反歸一化,該在哪個地方怎么添加程序呢?請高手指教[ Last edited by jjdg on 2013-1-23 at 13:03 ] |
matlab |
木蟲 (小有名氣)
新蟲 (初入文壇)
|
本帖內(nèi)容被屏蔽 |
銀蟲 (初入文壇)
新蟲 (初入文壇)
| 8 | 1/1 | 返回列表 |
| 最具人氣熱帖推薦 [查看全部] | 作者 | 回/看 | 最后發(fā)表 | |
|---|---|---|---|---|
|
[考研] 070300化學(xué)354求調(diào)劑 +7 | 101次希望 2026-03-28 | 7/350 |
|
|---|---|---|---|---|
|
[考研] 0703本科鄭州大學(xué)求調(diào)劑 +7 | nhj_ 2026-03-25 | 7/350 |
|
|
[有機交流] 考研調(diào)劑 +5 | watb 2026-03-26 | 5/250 |
|
|
[考研] 085602 化學(xué)工程專碩 340分求調(diào)劑 +4 | qianbai11 2026-03-29 | 4/200 |
|
|
[考研] 一志愿河北工業(yè)大學(xué)0817化工278分求調(diào)劑 +14 | jhybd 2026-03-23 | 19/950 |
|
|
[考研] 348求調(diào)劑 +6 | 小懶蟲不懶了 2026-03-28 | 6/300 |
|
|
[考研] 化學(xué)0703 調(diào)劑 306分 一志愿211 +7 | 26要上岸 2026-03-28 | 7/350 |
|
|
[考研] 349求調(diào)劑 +6 | 李木子啊哈哈 2026-03-25 | 6/300 |
|
|
[考研] 085600,專業(yè)課化工原理,321分求調(diào)劑 +5 | 大饞小子 2026-03-28 | 5/250 |
|
|
[碩博家園] 招收生物學(xué)/細(xì)胞生物學(xué)調(diào)劑 +4 | IceGuo 2026-03-26 | 5/250 |
|
|
[考研] 315求調(diào)劑 +4 | akie... 2026-03-28 | 5/250 |
|
|
[考研]
|
y7czhao 2026-03-26 | 10/500 |
|
|
[考研] 085601 材料工程 313分 求調(diào)劑 +5 | Ong3 2026-03-27 | 5/250 |
|
|
[考研] 一志愿鄭大085600,310分求調(diào)劑 +5 | 李瀟可 2026-03-26 | 5/250 |
|
|
[考研] 341求調(diào)劑 +7 | 青檸檬1 2026-03-26 | 7/350 |
|
|
[考研] 材料考研求調(diào)劑 +3 | Dendel 2026-03-23 | 6/300 |
|
|
[考研] 一志愿 南京郵電大學(xué) 288分 材料考研 求調(diào)劑 +3 | jl0720 2026-03-26 | 3/150 |
|
|
[考研] 打過很多競賽,085406控制工程300分,求調(diào)劑 +3 | askeladz 2026-03-26 | 3/150 |
|
|
[考研] 一志愿南航 335分 | 0856材料化工 | GPA 4.07 | 有科研經(jīng)歷 +6 | cccchenso 2026-03-23 | 6/300 |
|
|
[考研] 一志愿吉林大學(xué)材料與化工303分求調(diào)劑 +4 | 為學(xué)666 2026-03-24 | 4/200 |
|