Ⅰ bp神經網路如何用於預測
x(n+1)=F(x(n)+x(n-1)+.......x(n-1));由已知數據預測下一個數據這是單步預測。
Ⅱ 如何人工神經網路來預測下一個數值
newff函數建立BP神經網路,歷史數據作為樣本,例如前n個數據作為輸入,輸入節點為n。當前數據作為p,輸出節點為1。隱層節點根據試湊法得到。通過matlab的train函數,得到訓練好的BP神經網路。再將當前預測點的前n個數據作為輸入,輸出即為當前的預測值。
Ⅲ BP神經網路預測代碼
你這是在做時間序列呢。
你可以去《神經網路之家》nnetinfo----》學習教程二--->神經網路在時間序列上的應用
上面有講解。我把代碼摘抄給你
% time series:神經網路在時間序列上的應用
% 本代碼出自《神經網路之家》
timeList = 0 :0.01 : 2*pi; %生成時間點
X = sin(timeList); %生成時間序列信號
%利用x(t-5),x(t-4),x(t-3),x(t-2),x(t-1)作為輸入預測x(t),將x(t)作為輸出數據
inputData = [X(1:end-5);X(2:end-4);X(3:end-3);X(4:end-2);X(5:end-1)];
outputData = X(6:end);
%使用用輸入輸出數據(inputData、outputData)建立網路,
%隱節點個數設為3.其中隱層、輸出層的傳遞函數分別為tansig和purelin,使用trainlm方法訓練。
net = newff(inputData,outputData,3,{'tansig','purelin'},'trainlm');
%設置一些常用參數
net.trainparam.goal = 0.0001; %訓練目標:均方誤差低於0.0001
net.trainparam.show = 400; %每訓練400次展示一次結果
net.trainparam.epochs = 1500; %最大訓練次數:15000.
[net,tr] = train(net,inputData,outputData);%調用matlab神經網路工具箱自帶的train函數訓練網路
simout = sim(net,inputData); %調用matlab神經網路工具箱自帶的sim函數得到網路的預測值
figure; %新建畫圖窗口窗口
t=1:length(simout);
plot(t,outputData,t,simout,'r')%畫圖,對比原來的輸出和網路預測的輸出
%------------------附加:抽取數學表達式----------------------------top
%希望脫離matlab的sim函數來使用訓練好網路的話,可以抽取出數學的表達式,|
%這樣在任何軟體中,只需要按表達式計算即可。 |
%============抽取數學表達式==================
%抽取出網路的權值和閾值
w12 = net.iw{1,1}; %第1層(輸入層)到第2層(隱層)的權值
b2 = net.b{1}; %第2層(隱層)的閾值
w23 = net.lw{2,1}; %第2層(隱層)到第3層(輸出層)的權值
b3 = net.b{2}; %第3層(輸出層)的閾值
%由於有歸一化,必須先將歸一化信息抓取出來
iMax = max(inputData,[],2);
iMin = min(inputData,[],2);
oMax = max(outputData,[],2);
oMin = min(outputData,[],2);
%方法1:歸一化--->計算輸出--->反歸一化
normInputData=2*(inputData -repmat(iMin,1,size(inputData,2)))./repmat(iMax-iMin,1,size(inputData,2)) -1;
tmp = w23*tansig( w12 *normInputData + repmat(b2,1,size(normInputData,2))) + repmat(b3,1,size(normInputData,2));
myY = (tmp+1).*repmat(oMax-oMin,1,size(outputData,2))./2 + repmat(oMin,1,size(outputData,2));
%方法2:用真正的權值和閾值進行計算
%公式請參考《提取對應原始數據的權重和閾值》
W12 = w12 * 2 ./repmat(iMax' -iMin',size(w12,1),1);
B2 = -w12* (2*iMin ./(iMax - iMin) + 1) + b2;
W23 = w23 .*repmat((oMax -oMin),1,size(w23,2))/2;
B3 = (oMax -oMin) .*b3 /2 + (oMax -oMin)/2 + oMin;
%最終的數學表達式:
myY2 = W23 *tansig( W12 *inputData + repmat(B2,1,size(inputData,2))) + repmat(B3,1,size(inputData,2));
Ⅳ 如何用BP神經網路實現預測
首先要知道你建立的這個模型的內部邏輯關系。。
1,確定隱層數,畫出簡要模型圖。
2,確定採用什麼樣的神經網路來建立模型
3.通過測試數據來訓練模型。。
4.根據測試訓練得到的數據和實際數據進行比對,或者算出誤差。從而修改隱層中的權值和閥值。
反復重復3-4.。最後得到一個最優的模型。
大致是這樣。。。樓主說的太概略。。。無法回答清楚請抱歉
Ⅳ 怎麼用已經訓練好的BP神經網路進行預測下一個值
如果你的輸入歸一化好了,那麼模擬的時候也要歸一化,用tramnmx函數,在結果輸出的時候進行輸出歸一化,用postmnmx函數
Ⅵ R語言中BP神經網路怎麼進行預測新數據
help sim 准備數據集 學習和訓練 help train 訓練完成後,保存、使用網路 help sim
Ⅶ 大神,請問如何用BP實現通過已知數據訓練好的網路對未來完全沒有數據的一段時間進行預測,或者做出圖。
你輸入是什麼 輸出是什麼? 如果只是時間序列作為輸入參數,建議不要用神經網路。 你可以多提供一些信息以供具體分析。 BP做訓練網路基本都能達到誤差允許范圍,但是如果你輸入輸出本身內部關聯性就不強,那用這個訓練好的網路來預測誤差會很大。
Ⅷ 您好,我目前有6年數據,想用BP神經網路預測未來幾年的數據,想問下您公式,謝謝!
用matlab。
字數字數。
Ⅸ BP神經網路如何得出新的預測值
help sim
准備數據集
學習和訓練 help train
訓練完成後,保存、使用網路 help sim
Ⅹ DPS軟體的BP神經網路預測.怎樣預測未來幾年的數
BP(Back Propagation)神經網路是1986年由Rumelhart和McCelland為首的科學家小組提出,是一種按誤差逆傳播演算法訓練的多層前饋網路,是目前應用最廣泛的神經網路模型之一。BP網路能學習和存貯大量的輸入-輸出模式映射關系,而無需事前揭示描述這種映射關系的數學方程。它的學習規則是使用梯度下降法,通過反向傳播來不斷調整網路的權值和閾值,使網路的誤差平方和最小。BP神經網路模型拓撲結構包括輸入層(input)、隱層(hidden layer)和輸出層(output layer)。