導航:首頁 > 編程大全 > 神經網路進行預測的代碼

神經網路進行預測的代碼

發布時間:2023-07-05 17:38:01

❶ matlab BP神經網路預測代碼

P=[1;2;3;4;5];%月
P=[P/50];
T=[2;3;4;5;6];%月訓練樣本
T=[T/50];
threshold=[0 1;0 1;0 1;0 1;0 1;0 1;0 1];
net=newff(threshold,[15,7],{'tansig','logsig'},'trainlm');
net.trainParam.epochs=2000;
net.trainParam.goal=0.001;
LP.lr=0.1;
net=train(net,P,T);
P_test=[6月]';%6月數據預內測容7月
P_test=[P_test/50];
y=sim(net,P_test)
y=[y*50]

❷ 關於構建一個三層BP神經網路對葯品的銷售進行預測(程序由matlab編寫)

clear all;
close all;
clc;
%p = [2056 2395 2600 2298 1634 1600 1837 1478 1900 2395 2600 2298 1634 1600 1873 1478 1900 1500 2600 2298 1634 1600 1873 1478 1900 1500 2046];
t = [1873 1478 1900 1500 2046 1556];
p = [ 2056 2395 2600 2298 1634 1600];
%--歸一化輸入輸出-- 映射到[0,1]--%
pmax = max(p);
pmin = min(p);
P = (p-pmin)./(pmax-pmin);
tmax = max(t);
tmin = min(t);
T = (t-tmin)./(tmax-tmin);

net =newff(P,T,5,{'tansig','purelin'},'traingdx');
%--設置訓練參數--%
net.trainParam.show =50;
net.trainParam.lr = 0.05;
net.trainParam.epochs = 1000;
net.trainParam.goal = 1e-3;
net.divideFcn= '';

[net,tr] = train(net,P,T);
A =sim(net,P);
a =A.*(tmax - tmin)+tmin;
x = 7:12;
figure
plot(x,t,'+');
hold on;
plot(x,a,'or');
hold off;
xlabel('month');
ylabel('**')
legend('實際','預測')

❸ 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神經網路預測模型的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進行神經網路預測

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);
%% 結果分析

❻ 求助:用神經網路做一個數據預測

下列代碼為BP神經網路預測37-56周的銷售量的代碼:

% x為原始序列

load 銷售量.mat

data=C

x=data';

t=1:length(x);

lag=2;

fn=length(t);

[f_out,iinput]=BP(x,lag,fn);

%預測年份或某一時間段

t1=fn:fn+20;

n=length(t1);

t1=length(x)+1:length(x)+n;

%預測步數為fn

fn=length(t1);

[f_out,iinput]=BP(x,lag,fn);

P=vpa(f_out,5);

[t1' P']

% 畫出預測圖

figure(6),plot(t,x,'b*-'),hold on

plot(t(end):t1(end),[iinput(end),f_out],'rp-'),grid on

xlabel('周數'),ylabel('銷售量');

str=['BP神經網路預測',num2str(length(x)+1),'-',num2str(length(x)+20),'周的銷售量'];

title(str)

str1=['1-',num2str(length(x)),'周的銷售量'];

str2=[num2str(length(x)+1),'-',num2str(length(x)+20),'周的預測銷售量'];

legend(str1,str2)

運行結果

❼ 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);

(7)神經網路進行預測的代碼擴展閱讀

matlab的特點

1、具有完備的圖形處理功能,實現計算結果和編程的可視化;

2、友好的用戶界面及接近數學表達式的自然化語言,使學者易於學習和掌握;

3、功能豐富的應用工具箱(如信號處理工具箱、通信工具箱等) ,為用戶提供了大量方便實用的處理工具。

❽ 對於一個時間序列怎麼編寫bp神經網路matlab程序實現預測

BP網路訓練圖:
P = [1998 1999 2000 2001 2002 2003 2004 2005 2006 2007 2008 2009];%輸入向量
T = [115.4 212.1 259.7 251.8 352 463.4 509 558 614 700 696 712];%期望輸出
Z=[2010 2011 2012 2013 2014 2015 2016 2017 2018 2019 2020]
%創建兩層的BP網路:
net = newff([1998 2009],[100 1],{'tansig' 'purelin'});
net.trainparam.show=50;
%每次循環50次
net.trainParam.epochs = 500;
%最大循環500次
net = train(net,P,T);

%對網路進行反復訓練

只給出了一部分程序,其餘的QQ傳給你,留你的QQ。
結果:
Y =

Columns 1 through 7

115.4067 212.0911 259.7029 251.7979 352.0027 463.4023 508.9910

Columns 8 through 12

558.0155 613.9892 699.9980 696.0063 711.9970

預測值a =

Columns 1 through 7

711.9970 711.7126 749.4216 749.2672 746.7096 746.7096 751.0786

Columns 8 through 11

760.2729 757.3316 696.5151 696.5151
分別是2010-2020年的預測數據。

閱讀全文

與神經網路進行預測的代碼相關的資料

熱點內容
一朵烏雲圖案是什麼app 瀏覽:21
彌勒購物網站活動用例如何設計 瀏覽:510
什麼梗的網站 瀏覽:98
win10賬戶文件存儲在哪 瀏覽:310
同花花順數據在線在哪裡搞 瀏覽:368
mysql文件格式 瀏覽:336
微信傳文件到qq 瀏覽:586
手機如何發送文件去車機 瀏覽:76
apple5w電源適配器真假 瀏覽:288
多linux主機文件採集 瀏覽:743
sdcex格式文件 瀏覽:53
工程概算文件內容包括 瀏覽:635
什麼樣的硬碟數據不丟失 瀏覽:655
java鬧鍾案例 瀏覽:49
win7取消隱藏的文件夾 瀏覽:270
新昌網站主界面設計是什麼 瀏覽:999
u盤壞了文件找不到怎麼辦 瀏覽:106
ps能查到源文件嗎 瀏覽:702
文件路徑在哪找 瀏覽:962
word里怎麼加向下箭頭 瀏覽:162

友情鏈接