『壹』 用matlab編BP神經網路預測程序
這個程序有問題的,輸入數據有10列,輸出數據
『貳』 bp神經網路股票價格預測的MATLAB編程
P=[];『輸入,開盤價,最高價,最低價,收盤價成交量依次5天的數據』
T=[];』輸出,即第二日的收盤』
net=newff(minmax(P),[7,1],{'tansig','logsig'},'traingdx');
net.trainParam.epochs=1000; 『最大訓練次數,根據需要可自行調節』
net.trainParam.goal=0.01; 『誤差』
net.trainParam.lr=0.01; 『學習率』
net=train(net,P,T); 『訓練網路』
test=[];『待預測數據輸入』
out=sim(net,test); 『模擬預測』
我的這個程序沒有進行初始化,你還需要先將數據進行初始化後才能算。
『叄』 關於bp人工神經網路matlab編程預測問題,求大神幫忙,謝謝!
我電腦上運行正常,會不會是因為你沒清空工作空間,clc,clear運行一下
『肆』 求用matlab編BP神經網路預測程序
P=[。。。];輸入T=[。。。];輸出
% 創建一個新的前向神經網路
net_1=newff(minmax(P),[10,1],{'tansig','purelin'},'traingdm')
% 當前輸入層權值睜培和閾值
inputWeights=net_1.IW{1,1}
inputbias=net_1.b{1}
% 當前網路層權值和閾值
layerWeights=net_1.LW{2,1}
layerbias=net_1.b{2}
% 設置訓練參數
net_1.trainParam.show = 50;
net_1.trainParam.lr = 0.05;
net_1.trainParam.mc = 0.9;
net_1.trainParam.epochs = 10000;
net_1.trainParam.goal = 1e-3;
% 調悉森唯用 TRAINGDM 演算法訓練 BP 網路
[net_1,tr]=train(net_1,P,T);
% 對 BP 網路進行模擬
A = sim(net_1,P);
% 計算仿春碰真誤差
E = T - A;
MSE=mse(E)
x=[。。。]';%測試
sim(net_1,x)
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
不可能啊 我2009
『伍』 求一個bp神經網路預測模型的MATLAB程序
BP神經網路預測的步驟:
1、輸入和輸出數據。
2、創建網路。fitnet()
3、劃分訓練,測試和驗證數據的比例。net.divideParam.trainRatio;net.divideParam.valRatio;net.divideParam.testRatio
4、訓練網路。train()
5、根據圖表判斷擬合好壞。ploterrcorr();parcorr();plotresponse()
6、預測往後數據。net()
7、畫出預測圖。plot()
執行下列命令
BP_prediction
得到結果:
[ 2016, 14749.003045557066798210144042969]
[ 2017, 15092.847215188667178153991699219]
[ 2018, 15382.150005970150232315063476562]
[ 2019, 15398.85769711434841156005859375]
[ 2020, 15491.935150090605020523071289062]
『陸』 用matlab實現bp演算法,對樣本進行預測
來的:
lc;
P=[110 0.807 240 0.2 15 1 18 2 1.5;
110 2.865 240 0.1 15 2 12 1 2;
110 2.59 240 0.1 12 4 24 1 1.5;
220 0.6 240 0.3 12 3 18 2 1;
220 3 240 0.3 25 3 21 1 1.5;
110 1.562 240 0.3 15 3 18 1 1.5;
110 0.547 240 0.3 15 1 9 2 1.5];
%110 1.318 300 0.1 15 2 18 1 2];
T=[54248 162787 168380 314797;
28614 63958 69637 82898;
86002 402710 644415 328084;
230802 445102 362823 335913;
60257 127892 76753 73541;
34615 93532 80762 110049;
56783 172907 164548 144040];
%40907 117437 120368 130179];
m=max(max(P));
n=max(max(T));
P=P'/m;
T=T'/n;
%-------------------------------------------------------------------------%
pr(1:9,1)=0; %輸入矢量的取值范圍矩陣
pr(1:9,2)=1;
bpnet=newff(pr,[12 4],, 'traingdx', 'learngdm');
%建立BP神經網路, 12個隱層神經元,4個輸尺告出神經元
%tranferFcn屬性 'logsig' 隱層採用Sigmoid傳輸函數
%tranferFcn屬性 'logsig' 輸出層採用Sigmoid傳輸函數
%trainFcn屬性 'traingdx' 自適應調整學習速率附加動量因子梯度下降反向傳播演算法訓練函數
%learn屬性 'learngdm' 附加動量因子的梯度下降學習函數
net.trainParam.epochs=1000;%允許最大訓練步數2000步陵悉明
net.trainParam.goal=0.001; %訓練目標最小陸晌誤差0.001
net.trainParam.show=10; %每間隔100步顯示一次訓練結果
net.trainParam.lr=0.05; %學習速率0.05
bpnet=train(bpnet,P,T);
%-------------------------------------------------------------------------
p=[110 1.318 300 0.1 15 2 18 1 2];
p=p'/m;
r=sim(bpnet,p);
R=r'*n;
display(R);
『柒』 求大神幫忙用matlab程序做BP神經網路預測
1、樣本數據太少,用BP網路預測可能並非好選擇。說不定用一般的回歸分析效果更好。
2、要對Y進行預測,需要知道2015年的影響因素X1~X7才行吧?
BP神經網路的參考程序:
data=[...
20092102.13108.691104.99888.45700.664.288204.517502.1
2010旦升此2701.61132.741456.641121.64839.0299.58910020760.52
20113636.62208.222002.11426.291111.12123.0910086.8829286.8
20124164.32229.052303.91631.371293.62176.4212005.11533720.1
20134672.91247.212583.751841.951480.84181.913136.7739131
20145157.97257.632872.012028.331666.75200.871511042194
];
year=data(:,1);
p=data(:,2:8).';
t=data(:,9).';
net=newff(p,t,10);
net=train(net,p,t);
y1=sim(net,p(:,end))
由於沒有2015年的X1~X7數據,最後一句用2014年的數據進行測試。
如果用多元線性回歸:
c=regress(t',p')
y2=c'*p(:,end)
由於樣本數量太笑謹少(少於影響因素的數量),這種情況下,實際上回歸的結果可以幾乎沒有誤差(只有數值誤差)。當然,用於預測是否准確要另當模迅別論。
『捌』 GA-BP神經網路模型預測的MATLAB程序問題
Matlab神經網路工具箱提供了一系列用於建立和訓練bp神經網路模型的函數命令,很難一時講全。下面僅以一個例子列舉部分函數的部分用法。更多的函數和用法請仔細查閱Neural Network Toolbox的幫助文檔。 例子:利用bp神經網路模型建立z=sin(x+y)的模型並檢驗效果 %第1步。隨機生成200個采樣點用於訓練 x=unifrnd(-5,5,1,200); y=unifrnd(-5,5,1,200); z=sin(x+y); %第2步。建立神經網路模型。其中參數一是輸入數據的范圍,參數二是各層神經元數量,參數三是各層傳遞函數類型。 N=newff([-5 5;-5 5],[5,5,1],{'tansig','tansig','purelin'}); %第3步。訓練。這里用批訓練函數train。也可用adapt函數進行增長訓練。 N=train(N,[x;y],z); %第4步。檢驗訓練成果。 [X,Y]=meshgrid(linspace(-5,5)); Z=sim(N,[X(:),Y(:)]'); figure mesh(X,Y,reshape(Z,100,100)); hold on; plot3(x,y,z,'.')