bp神经网络预测matlab源代码

2024-05-08 06:12

1. bp神经网络预测matlab源代码

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源代码

2. matlab中用RBF神经网络做预测的代码怎么写

clc;
clearall;
closeall;
%%----BuildatrainingsetofasimilarversionofXOR
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
%UsingknnsearchtofindKnearestneighborpointsforeachcentervector
%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;
%%trainingfunctionandpredictfunction
[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);

扩展资料
matlab的特点
1、具有完备的图形处理功能,实现计算结果和编程的可视化;
2、友好的用户界面及接近数学表达式的自然化语言,使学者易于学习和掌握;
3、功能丰富的应用工具箱(如信号处理工具箱、通信工具箱等) ,为用户提供了大量方便实用的处理工具。
参考资料来源:百度百科—MATLAB

3. matlab bp神经网络 预测模型 代码(详见补充),非常感谢!

可以用

matlab bp神经网络 预测模型 代码(详见补充),非常感谢!

4. 如何利用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);
%% 结果分析

5. 用matlab中bp神经网络实现由输入值预测输出值的程序

给你个例子如下,
net=newff(inputn,outputn,[8,4],{'tansig','purelin'},'trainscg');%初始化网络结构
%网络参数配置(迭代次数、学习率、目标)
net.trainParam.epochs=3000;
net.trainParam.lr=0.08;
net.trainParam.goal=0.05;
net.divideFcn = '';
[net,tr]=train(net,inputn,outputn);%网络训练
%网络预测输出
an=sim(net,inputn_test);
 
不过只了解输入预测输出,这些还不够,还要看你的输入数据的量,来确定隐含层,还需要看数据是不是归一化,我专门做神经网络的预测工作,可否加QQ探讨一下?

用matlab中bp神经网络实现由输入值预测输出值的程序

6. bp神经网络预测模型matlab代码

将p矩阵转置,行代表年度,列代表季度,然后用1998~2012年的数据训练2013年的数据,再用1999~2013年的数据预测2014年的数据。

7. bp神经网络人口预测程序(matlab实现)

x=[54167    55196    56300    57482    58796    60266    61465    62828    64653    65994    67207    66207    65859    67295    69172    70499    72538    74542    76368    78534    80671    82992    85229    87177    89211     90859     92420     93717     94974     96259     97542     98705    100072    101654    103008    104357    105851    107507    109300    111026    112704    114333    115823    117171    118517    119850    121121    122389    123626    124761    125786    126743    127627    128453    129227    129988    130756    131448    132129    132802    134480    135030    135770    136460    137510]';% 该脚本用来做NAR神经网络预测% 作者:Macer程lag=3;    % 自回归阶数iinput=x; % x为原始序列(行向量)n=length(iinput);%准备输入和输出数据inputs=zeros(lag,n-lag);for i=1:n-lag    inputs(:,i)=iinput(i:i+lag-1)';endtargets=x(lag+1:end);%创建网络hiddenLayerSize = 10; %隐藏层神经元个数net = fitnet(hiddenLayerSize);% 避免过拟合,划分训练,测试和验证数据的比例net.divideParam.trainRatio = 70/100;net.divideParam.valRatio = 15/100;net.divideParam.testRatio = 15/100;%训练网络[net,tr] = train(net,inputs,targets);%% 根据图表判断拟合好坏yn=net(inputs);errors=targets-yn;figure, ploterrcorr(errors)                      %绘制误差的自相关情况(20lags)figure, parcorr(errors)                          %绘制偏相关情况%[h,pValue,stat,cValue]= lbqtest(errors)         %Ljung-Box Q检验(20lags)figure,plotresponse(con2seq(targets),con2seq(yn)) %看预测的趋势与原趋势%figure, ploterrhist(errors)                      %误差直方图%figure, plotperform(tr)                          %误差下降线%% 下面预测往后预测几个时间段fn=7;  %预测步数为fn。

f_in=iinput(n-lag+1:end)';f_out=zeros(1,fn);  %预测输出% 多步预测时,用下面的循环将网络输出重新输入for i=1:fn    f_out(i)=net(f_in);    f_in=[f_in(2:end);f_out(i)];end% 画出预测图figure,plot(1949:2013,iinput,'b',2013:2020,[iinput(end),f_out],'r')
                                             图1自相关






                                                 图2误差

                                                  图3预测
      上面的程序是可以通用的,只要你根据自己需要是可以修改用在其他地方的,基本思想就是用前lag年的人口数来预测下一年的人口,至于lag等于几你是可以自己改的。还有在对结果好坏的判断中,仅仅看误差图是不够的,如果是一个好的预测,那么自相关性图中除了0阶自相关外,其他的自相关系数系数都不应该超过上下置信区间。还有其他的统计量和图表都都写在”%“后面了,如果需要,去掉就可用。最后的预测值为f_out,我的预测值为
138701.065269972    139467.632609654    140207.209707364    141210.109373609    141981.285378849    142461.332139592    143056.073139776

bp神经网络人口预测程序(matlab实现)

8. 求matlab神经网络时间序列预测的完整程序

将时间序列拆开,组织训练样本。参考附件的例子,用的是BP神经网络。

BP(Back Propagation)神经网络是86年由Rumelhart和McCelland为首的科学家小组提出,是一种按误差逆传播算法训练的多层前馈网络,是目前应用最广泛的神经网络模型之一。BP网络能学习和存贮大量的输入-输出模式映射关系,而无需事前揭示描述这种映射关系的数学方程。它的学习规则是使用最速下降法,通过反向传播来不断调整网络的权值和阈值,使网络的误差平方和最小。BP神经网络模型拓扑结构包括输入层(input)、隐层(hidden layer)和输出层(output layer)。