Ⅰ matlab 神經網路模型 用一組數據預測另一組
matlab 神經網中纖絡模型是可以 用一組數據預測另一組的。其預測過程是笑棚,先訓練,後預測。
由於沒賣升仿有具體的數據,無法對其操作說明。
Ⅱ 如何使用MATLAB建立GM(1,n)模型,用於波動數據預測
從圖形結果來看鉛穗,伏激汪用GM(1,1)灰色模型進行波動數據預測,誤差偏大,其預測性是不可靠。建議採用BP神經網路來預測,即通過已知5個數據訓練,缺仔來預測10個數據 。其方法過程:
1、導入數據
2、產生訓練集和測試集
3、數據歸一化處理
4、創建/訓練BP神經網路及模擬測試
5、性能評價(相對誤差,決定系數,極差)
6、繪圖
按照上述方法進行編程,可以得到如下結果。
Ⅲ 求預測一組數據的bp神經網路模型的matlab代碼
用matlab求預測一組數據的bp神經網路模型,可以分
1、給定已經數據,作為一個原始序列;
2、設定自回歸階數,一般2~3,太高不一定好;
3、設定預測某一時間段
4、設定預測步數
5、用BP自定義函數進行預測
6、根據預測值,用plot函數繪制預測數據走勢圖
其主要實現代碼如下:
clc
% x為原始序列(行向量)
x=[208.72 205.69 231.5 242.78 235.64 218.41];
%x=[101.4 101.4 101.9 102.4 101.9 102.9];
%x=[140 137 112 125 213 437.43];
t=1:length(x);
% 自回歸階數
lag=3;
%預測某一時間段
t1=t(end)+1:t(end)+5;
%預測步數為fn
fn=length(t1);
[f_out,iinput]=BP(x,lag,fn);
P=vpa(f_out,5);
A=[t1' P'];
disp('預測值')
disp(A)
% 畫出預測圖
figure(1),plot(t,iinput,'bo-'),hold on
plot(t(end):t1(end),[iinput(end),f_out],'rp-'),grid on
title('BP神經網路預測某地鐵線路客流量')
xlabel('月號'),ylabel('客流量(百萬)');
運行結果:
Ⅳ 如何利用matlab進行神經網路預測
matlab 帶有神經網路工具箱,可直接調用,建議找本書看看,或者MATLAB論壇找例子。回
核心調用語句如下:答
%數據輸入
%選連樣本輸入輸出數據歸一化
[inputn,inputps]=mapminmax(input_train);
[outputn,outputps]=mapminmax(output_train);
%% BP網路訓練
% %初始化網路結構
net=newff(inputn,outputn,[8 8]);
net.trainParam.epochs=100;
net.trainParam.lr=0.01;
net.trainParam.goal=0.01;
%網路訓練
net=train(net,inputn,outputn);
%% BP網路預測
%預測數據歸一化
inputn_test=mapminmax('apply',input_test,inputps);
%網路預測輸出
an=sim(net,inputn_test);
%網路輸出反歸一化
BPoutput=mapminmax('reverse',an,outputps);
%% 結果分析
Ⅳ 用Matlab編程BP神經網路進行預測
原理復就是:建立網路-數據歸一化-訓練制-預測-數據反歸一化。附件是電力負荷預測的例子,可以參考。
BP(Back Propagation)神經網路是1986年由Rumelhart和McCelland為首的科學家小組提出,是一種按誤差逆傳播演算法訓練的多層前饋網路,是目前應用最廣泛的神經網路模型之一。BP網路能學習和存貯大量的輸入-輸出模式映射關系,而無需事前揭示描述這種映射關系的數學方程。它的學習規則是使用最速下降法,通過反向傳播來不斷調整網路的權值和閾值,使網路的誤差平方和最小。BP神經網路模型拓撲結構包括輸入層(input)、隱層(hidden layer)和輸出層(output layer)。
Ⅵ matlab中用RBF神經網路做預測的代碼怎麼寫
clc;
clearall;
closeall;
%%----
c_1=[00];
c_2=[11];
c_3=[01];
c_4=[10];
n_L1=20;%numberoflabel1
n_L2=20;%numberoflabel2
A=zeros(n_L1*2,3);
A(:,3)=1;
B=zeros(n_L2*2,3);
B(:,3)=0;
%createrandompoints
fori=1:n_L1
A(i,1:2)=c_1+rand(1,2)/2;
A(i+n_L1,1:2)=c_2+rand(1,2)/2;
end
fori=1:n_L2
B(i,1:2)=c_3+rand(1,2)/2;
B(i+n_L2,1:2)=c_4+rand(1,2)/2;
end
%showpoints
scatter(A(:,1),A(:,2),[],'r');
holdon
scatter(B(:,1),B(:,2),[],'g');
X=[A;B];
data=X(:,1:2);
label=X(:,3);
%%Usingkmeanstofindcintervector
n_center_vec=10;
rng(1);
[idx,C]=kmeans(data,n_center_vec);
holdon
scatter(C(:,1),C(:,2),'b','LineWidth',2);
%%Calulatesigma
n_data=size(X,1);
%calculateK
K=zeros(n_center_vec,1);
fori=1:n_center_vec
K(i)=numel(find(idx==i));
end
%
%thencalucatesigma
sigma=zeros(n_center_vec,1);
fori=1:n_center_vec
[n,d]=knnsearch(data,C(i,:),'k',K(i));
L2=(bsxfun(@minus,data(n,:),C(i,:)).^2);
L2=sum(L2(:));
sigma(i)=sqrt(1/K(i)*L2);
end
%%Calutateweights
%kernelmatrix
k_mat=zeros(n_data,n_center_vec);
fori=1:n_center_vec
r=bsxfun(@minus,data,C(i,:)).^2;
r=sum(r,2);
k_mat(:,i)=exp((-r.^2)/(2*sigma(i)^2));
end
W=pinv(k_mat'*k_mat)*k_mat'*label;
y=k_mat*W;
%y(y>=0.5)=1;
%y(y<0.5)=0;
%%
[W1,sigma1,C1]=RBF_training(data,label,10);
y1=RBF_predict(data,W,sigma,C1);
[W2,sigma2,C2]=lazyRBF_training(data,label,2);
y2=RBF_predict(data,W2,sigma2,C2);
(6)matlab神經網路預測模型擴展閱讀
matlab的特點
1、具有完備的圖形處理功能,實現計算結果和編程的可視化;
2、友好的用戶界面及接近數學表達式的自然化語言,使學者易於學習和掌握;
3、功能豐富的應用工具箱(如信號處理工具箱、通信工具箱等) ,為用戶提供了大量方便實用的處理工具。
Ⅶ matlab怎麼利用神經網路做預測
利用matlab做神經網路預測,可按下列步驟進行:
1、提供原始數據
2、訓練數據預測數據提取及歸一化
3、BP網路訓練
4、BP網路預測
5、結果分析
Ⅷ (急)如何用MATLAB建立ANN(人工神經網路模型)
問題描述:
有兩個自變數,一個因變數,10個樣本(這里就取少一點好了)。用實際問題來表述,假設一個股票,開盤價 x1,收盤價 x2,第二天的股價 y。 那用神經網路來預測的目的是,根據10天的開盤價和收盤價,來預測未來股價。顯然,這里的y與x1和x2相關,我們要訓練一個網路(net)來讓他盡可能的預測一個y
MATLAB程序
clc
clear
load data input output
%input就是包含了x1和x2 10天數據的矩陣,說白了就是20個數的矩陣。output是y的一個向量,%10個數
%需要自己找一些數據賦值給input和ouput
P=input;
T=output;
%這里P和T必須是 x1 x2和y的行向量組合。對於P,x1是行向量,x2是行向量。P=[x1;x2]; T=y. y是行向量
Epochs=5000;
NodeNum=12; TypeNum=1;
TF1='logsig'; TF2='purelin';
%設置一些初始參數,Epochs是迭代上限次數,NodeNum是第一個隱藏層的神經元個數,%TypeNum是幾層。TF1和TF2分別定義了幾個傳遞函數。
net=newff(minmax(P),[NodeNum TypeNum],{TF1 TF2},'trainlm');
%建立一個神經網路,訓練輸入和輸出數據都有了,設置隱藏層的個數。
net.trainParam.epochs=Epochs;
net.trainParam.goal=1e-4;
net.trainParam.min_grad=1e-4;
net.trainParam.show=200;
net.trainParam.time=inf;
%設置一些訓練時的參數,第一個是每次訓練的最大迭代次數;
net=train(net,P,T);
%開始網路訓練
P_test=P;
B_test=T;
%就用原始的數據進行測試
X=sim(net,P_test);
%測試
Erro=abs(B_test-X);
sigma=std(Erro);
%計算出預測值和實際值的誤差,求出方差。將來方差可以用來隨機調整
Ⅸ 求一個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]