| 5 | 1/1 | 返回列表 |
| 查看: 3198 | 回復(fù): 7 | |||
| 當(dāng)前只顯示滿足指定條件的回帖,點擊這里查看本話題的所有回帖 | |||
[求助]
請高手指教如何提高這個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.每次程序運(yùn)行完,都要提示錯誤,貌似是運(yùn)算符合不對,但是改過之后依然有誤。不知該怎么改? 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ù)進(jìn)行驗證 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ù)進(jìn)行測試 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é)果總是整體偏高,不知道跟我沒有進(jìn)行數(shù)據(jù)歸一化有沒有關(guān)系?如果進(jìn)行數(shù)據(jù)歸一化和反歸一化,該在哪個地方怎么添加程序呢?請高手指教[ Last edited by jjdg on 2013-1-23 at 13:03 ] |
matlab |
新蟲 (初入文壇)
木蟲 (小有名氣)
|
本帖內(nèi)容被屏蔽 |
| 最具人氣熱帖推薦 [查看全部] | 作者 | 回/看 | 最后發(fā)表 | |
|---|---|---|---|---|
|
[考研] 22408 359分調(diào)劑 +4 | Qshers 2026-03-27 | 7/350 |
|
|---|---|---|---|---|
|
[考研] 一志愿中南大學(xué)化學(xué)0703總分337求調(diào)劑 +6 | niko- 2026-03-27 | 6/300 |
|
|
[考研] 375求調(diào)劑 +6 | 雨夏整夜 2026-03-29 | 6/300 |
|
|
[考研] 085404求調(diào)劑,總分309,本科經(jīng)歷較為豐富 +6 | 來財aa 2026-03-25 | 6/300 |
|
|
[考研] 295求調(diào)劑 +5 | wei-5 2026-03-26 | 5/250 |
|
|
[考研] 318一志愿吉林大學(xué)生物與醫(yī)藥 求調(diào)劑 +5 | 篤行致遠(yuǎn). 2026-03-28 | 5/250 |
|
|
[考研] 340求調(diào)劑 +6 | Amber00 2026-03-26 | 6/300 |
|
|
[考研] 311(085601)求調(diào)劑 +4 | liziyeyeye 2026-03-28 | 4/200 |
|
|
[考研] 一志愿華理,數(shù)一英一285求A區(qū)調(diào)劑 +8 | AZMK 2026-03-25 | 12/600 |
|
|
[考研] 312,生物學(xué)求調(diào)劑 +3 | 小譯同學(xué)abc 2026-03-28 | 3/150 |
|
|
[考研] 復(fù)試調(diào)劑 +3 | raojunqi0129 2026-03-28 | 3/150 |
|
|
[考研] 315分求調(diào)劑 +7 | 26考研上岸版26 2026-03-26 | 7/350 |
|
|
[考研] 一志愿上海理工能源動力(085800)310分求調(diào)劑 +3 | zhangmingc 2026-03-27 | 4/200 |
|
|
[考博] 26申博 +3 | 加油沖! 2026-03-26 | 3/150 |
|
|
[考研] 中國科學(xué)院深圳先進(jìn)技術(shù)研究院-光纖傳感課題組招生-中國科學(xué)院大學(xué)、深圳理工大學(xué)聯(lián)培 +5 | YangTyu1 2026-03-26 | 5/250 |
|
|
[考研] 考研一志愿蘇州大學(xué)初始315(英一)求調(diào)劑 +3 | sbdksD 2026-03-24 | 4/200 |
|
|
[考研] 302求調(diào)劑 +4 | 錦衣衛(wèi)藤椒 2026-03-25 | 4/200 |
|
|
[考研] 【2026考研調(diào)劑】制藥工程 284分 求相關(guān)專業(yè)調(diào)劑名額 +4 | 袁奐奐 2026-03-25 | 8/400 |
|
|
[考研] 347求調(diào)劑 +4 | L when 2026-03-25 | 4/200 |
|
|
[考研]
|
黃粱一夢千年 2026-03-24 | 3/150 |
|