| 4 | 1/1 | 返回列表 |
| 查看: 1222 | 回復: 3 | ||
kathy2836鐵桿木蟲 (小有名氣)
|
[求助]
BP神經網(wǎng)絡進行水質評價遇到問題 已有1人參與
|
|
用BP神經網(wǎng)絡進行水質評價,選取6個水質因子進行評價,通過rand函數(shù)在水質標準各等級標準值區(qū)間分別隨機生成400個數(shù)值。因為標準中添加了劣五類水質,所以共隨機生成2400組數(shù)據(jù),其中每個等級區(qū)間內選取300個用作訓練樣本,其余100個為測試樣本。輸出目標格式為: T=[1 0 0 0 0 0;0 1 0 0 0 0;0 0 1 0 0 0;0 0 0 1 0 0;0 0 0 0 1 0;0 0 0 0 0 1]’。 輸入神經元為6個,輸出神經元為6個。通過試錯法得到隱含層神經元數(shù)量為10的時候誤差最小。訓練網(wǎng)絡的時候也能達到設定的目標誤差,但是再用水質標準值歸一化后通過訓練好的網(wǎng)絡得到的輸出卻和預計輸出差很遠。代碼如下,請高手指點一下問題出在哪里,十分感謝! **************************************************************************************************** % 6個因子的水質標準,包含劣五類水質 P=[7.5 15 2 0.015 0.2 0.01;6 15 4 0.5 0.5 0.025;5 20 6 1 1 0.05; 3 30 10 1.5 1.5 0.1;2 40 15 2 2 0.2;0 200 25 8 40 1]'; %隨機生成訓練樣本 P1=[(15-P(1,1))*rand(1,400)+P(1,1);P(2,1)*rand(1,400);P(3,1)*rand(1,400); P(4,1)*rand(1,400);P(5,1)*rand(1,400);P(6,1)*rand(1,400)]; P2=[(P(1,1)-P(1,2))*rand(1,400)+P(1,2);P(2,2)*rand(1,400);(P(3,2)-P(3,1))*rand(1,400)+P(3,1); (P(4,2)-P(4,1))*rand(1,400)+P(4,1);(P(5,2)-P(5,1))*rand(1,400)+P(5,1);(P(6,2)-P(6,1))*rand(1,400)+P(6,1)]; P3=[(P(1,2)-P(1,3))*rand(1,400)+P(1,3);(P(2,3)-P(2,2))*rand(1,400)+P(2,2);(P(3,3)-P(3,2))*rand(1,400)+P(3,2); (P(4,3)-P(4,2))*rand(1,400)+P(4,2);(P(5,3)-P(5,2))*rand(1,400)+P(5,2);(P(6,3)-P(6,2))*rand(1,400)+P(6,2)]; P4=[(P(1,3)-P(1,4))*rand(1,400)+P(1,4);(P(2,4)-P(2,3))*rand(1,400)+P(2,3);(P(3,4)-P(3,3))*rand(1,400)+P(3,3); (P(4,4)-P(4,3))*rand(1,400)+P(4,3);(P(5,4)-P(5,3))*rand(1,400)+P(5,3);(P(6,4)-P(6,3))*rand(1,400)+P(6,3)]; P5=[(P(1,4)-P(1,5))*rand(1,400)+P(1,5);(P(2,5)-P(2,4))*rand(1,400)+P(2,4);(P(3,5)-P(3,4))*rand(1,400)+P(3,4); (P(4,5)-P(4,4))*rand(1,400)+P(4,4);(P(5,5)-P(5,4))*rand(1,400)+P(5,4);(P(6,5)-P(6,4))*rand(1,400)+P(6,4)]; P6=[(P(1,5)-P(1,6))*rand(1,400)+P(1,6);(P(2,6)-P(2,5))*rand(1,400)+P(2,5);(P(3,6)-P(3,5))*rand(1,400)+P(3,5); (P(4,6)-P(4,5))*rand(1,400)+P(4,5);(P(5,6)-P(5,5))*rand(1,400)+P(5,5);(P(6,6)-P(6,5))*rand(1,400)+P(6,5)]; %隨機生成的樣本矩陣(6*2400) PP=[P1 P2 P3 P4 P5 P6]; %各選取300個做為訓練樣本 PI=[P1(:,1:300) P2(:,1:300) P3(:,1:300) P4(:,1:300) P5(:,1:300) P6(:,1:300)]; %其余100個做為測試樣本 PT=[P1(:,301:400) P2(:,301:400) P3(:,301:400) P4(:,301:400) P5(:,301:400) P6(:,301:400)]; %讀取目標輸出矩陣文件(6*2400) T=xlsread('C:\Users\Kathy\Desktop\ANN\T.xlsx','Sheet1'); %對應訓練樣本和測試樣本的輸出矩陣 TI=[T(:,1:300) T(:,401:700) T(:,801:1100) T(:,1201:1500) T(:,1601:1900) T(:,2001:2300)]; TTEST=[T(:,301:400) T(:,701:800) T(:,1101:1200) T(:,1501:1600) T(:,1901:2000) T(:,2301:2400)]; %將訓練樣本歸一化至[-1,1]區(qū)間 [PN,ps]=mapminmax(PI); %建立訓練網(wǎng)絡。這里我開始用的是tansig激活函數(shù),但是三條線的收斂效果很差,所以改成了logsig。不知道有沒有問題?是不是歸一化區(qū)間為[-1,1]要對應使用tansig函數(shù)? net6=newff(minmax(PN),TI,[10,6],{'logsig','purelin'},'trainlm'); %設定輸入層權重和閾值 inputWeight6=net6.IW{1,1}; inputbias6=net6.b{1}; %設定當前層權重和閾值 layerWeight6=net6.LW{2,1}; layerbias6=net6.b{2}; % 設定訓練參數(shù) net6.trainParam.show=5; net6.trainParam.lr=0.05; net6.trainParam.mc=0.95; net6.trainParam.epochs=3000; net6.trainParam.goal=0.0001; %對網(wǎng)絡進行訓練 net6=train(net6,PN,TI); A6=sim(net6,PN); E6=TI-A6; MSE6=mse(E6); ****************************************************************************** 通過以上步驟之后,得到的A6矩陣很滿意,和預計輸出差不多,但是當我用這個網(wǎng)絡對水質標準值(就是上面代碼中的P矩陣)歸一化之后進行操作時,得到的結果卻和預計輸出差很多, 對30個站位的水質監(jiān)測值進行同樣操作,結果也是有一些站位的值異常。 請高手給予指點,問題出在哪里呢?困擾我很久了,十分感謝! |
木蟲 (知名作家)

| 4 | 1/1 | 返回列表 |
| 最具人氣熱帖推薦 [查看全部] | 作者 | 回/看 | 最后發(fā)表 | |
|---|---|---|---|---|
|
[考研] 求調劑,一志愿:南京航空航天大學大學 ,080500材料科學與工程學碩,總分289分 +3 | @taotao 2026-03-19 | 3/150 |
|
|---|---|---|---|---|
|
[考研] 一志愿南昌大學,327分,材料與化工085600 +3 | Ncdx123456 2026-03-19 | 3/150 |
|
|
[考研] 一志愿吉林大學材料學碩321求調劑 +6 | Ymlll 2026-03-18 | 9/450 |
|
|
[考研] 0703化學調劑,求各位老師收留 +10 | 秋有木北 2026-03-14 | 10/500 |
|
|
[考研]
|
.6lL 2026-03-18 | 5/250 |
|
|
[考研] 354求調劑 +4 | Tyoumou 2026-03-18 | 7/350 |
|
|
[考研] 266求調劑 +5 | 陽陽哇塞 2026-03-14 | 9/450 |
|
|
[考研] 一志愿西南交大,求調劑 +4 | 材化逐夢人 2026-03-18 | 4/200 |
|
|
[考研] 0703化學調劑 ,六級已過,有科研經歷 +10 | 曦熙兮 2026-03-15 | 10/500 |
|
|
[考研] 070300化學319求調劑 +6 | 錦鯉0909 2026-03-17 | 6/300 |
|
|
[考研] 312求調劑 +8 | 陌宸希 2026-03-16 | 9/450 |
|
|
[考研] 考研化學學碩調劑,一志愿985 +4 | 張vvvv 2026-03-15 | 6/300 |
|
|
[考研]
|
zhouzhen654 2026-03-16 | 3/150 |
|
|
[考研] 藥學383 求調劑 +3 | 藥學chy 2026-03-15 | 4/200 |
|
|
[考研] 0854控制工程 359求調劑 可跨專業(yè) +3 | 626776879 2026-03-14 | 9/450 |
|
|
[考研] 0703 物理化學調劑 +3 | 我可以上岸的對?/a> 2026-03-13 | 5/250 |
|
|
[考研] 085601材料工程315分求調劑 +3 | yang_0104 2026-03-15 | 3/150 |
|
|
[考研] 297求調劑 +4 | 學海漂泊 2026-03-13 | 4/200 |
|
|
[碩博家園] 085600 260分求調劑 +3 | 天空還下雨么 2026-03-13 | 5/250 |
|
|
[考研] 一志愿山大07化學 332分 四六級已過 本科山東雙非 求調劑! +3 | 不想理你 2026-03-12 | 3/150 |
|