matlab怎么利用神经网络做预测

2024-05-05 00:38

1. matlab怎么利用神经网络做预测

利用matlab做神经网络预测,可按下列步骤进行:
1、提供原始数据
2、训练数据预测数据提取及归一化
3、BP网络训练
4、BP网络预测
5、结果分析



matlab怎么利用神经网络做预测

2. 求用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

3. matlab神经网络预测问题,不知sim函数怎么样用?

an=sim(net,input_test_s);  注意归一化   ,预测输出后再反归一化

matlab神经网络预测问题,不知sim函数怎么样用?

4. 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

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. 怎样用Matlab的BP神经网络预测后五年的工资

由于你没有给出几年来工资数,无法为你预测后五年的工资。现给你一个例子,希望对你有点启发。已知2009年至2014年的某地区人口总数3583,4150,5062,4628,5270,5340;现要预测2015年和2016年的人口总数。
% 清空环境变量
clear all;close all;clc
t=2009:2014;
% x为原始序列(行向量)
x=[3583 4150 5062 4628 5270 5340];
% 自回归阶数
lag=2; 
%预测年份或某一时间段
t1=2015:2016;
%预测步数为fn
fn=length(t1);     
[f_out,iinput]=BP(x,lag,fn);   %BP神经网络函数
n1=length(t1);
P=vpa(f_out,5);
[t1' P']
% 画出预测图
figure,plot(2009:2014,iinput,'b'),hold on
plot(2014:2016,[iinput(end),f_out],'r'),grid on
title('BP神经网络预测某地区人口数')

如有问题,可以私聊或通过其他方式讨论。

7. 如何用MATLAB的神经网络工具箱实现三层BP网络

这是一个来自nnetinfo的例子,在matlab2012b运行后的确可以,因为百度知道的文本宽度不够,注释挤到第二行了,有些乱,楼主注意区分哪些是代码哪些是注释,
x1 = 
[-3,-2.7,-2.4,-2.1,-1.8,-1.5,-1.2,-0.9,-0.6,-0.3,0,0.3,0.6,0.9,1.2,1.5,1.8];  %x1:x1 = -3:0.3:2;
   x2 = 
[-2,-1.8,-1.6,-1.4,-1.2,-1,-0.8,-0.6,-0.4,-0.2,-2.2204,0.2,0.4,0.6,0.8,1,1.2];%x2:x2 = -2:0.2:1.2;
   y  = [0.6589,0.2206,-0.1635,-0.4712,-0.6858,-0.7975,-0.8040,...

           -0.7113,-0.5326,-0.2875 
,0,0.3035,0.5966,0.8553,1.0600,1.1975,1.2618];  %y: 
y = sin(x1)+0.2*x2.*x2;
   inputData  = [x1;x2]; %将x1,x2作为输入数据

   outputData = y;       %将y作为输出数据

   
%使用用输入输出数据(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 = 15000;  
%最大训练次数:15000.
   [net,tr] = train(net,inputData,outputData);%调用matlab神经网络工具箱自带的train函数训练网络
   simout = sim(net,inputData); 
%调用matlab神经网络工具箱自带的sim函数得到网络的预测值
   figure;  %新建画图窗口窗口
   t=1:length(simout);
   plot(t,y,t,simout,'r')%画图,对比原来的y和网络预测的y

如何用MATLAB的神经网络工具箱实现三层BP网络

8. 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]