Ⅰ 用matlab进行RBF神经网络时间序列预测,预测值为什么一直不变
可能使用的是以数据训练的方式后,来预测未来值的吧。你最好把数据和代码传上来(其他方式也可以),这样可以帮查找问题实在。
Ⅱ 毕设临近,哪位大神会用matlab编写RBF神经网络的代码
那篇《基于RBF神经网络的校园网络流量预测研究》里的数据看不到,请把数据贴出来便于分析编写其代码。
Ⅲ RBF 神经网络 预测 matlab
前面那位仁兄说到点子上了,你的网络没有大量数据先进行训练,你的p,t,组数感觉略少,训练达不到效果,
训练语句如下:
net=train(net,p,t);
另外,p_test=[0.054795;0.020548;0]如果这是测试样本,这句要改为y=sim(net,p_test);
Ⅳ 请教RBF神经网络高手。用matlab设计newgrnn广义回归神经网络,进行训练、仿真、拟合。画出预测图和误差图
这个拟合了也没有多大的意义。
一、数据太少。二、发病率和时间存不存在因果关系还是个疑问
Ⅳ 基于rbf神经网络的负荷预测仿真问题!!求大神讲解讲解!!!感激不尽!!
工作日和双休日的负荷特性不同:有两种处理方法,一种是分别建立模型,分别训练,不要拿工作日模型来预测双休日;第二种方法是用同一个模型,只是将工作日与双休日量化为0和1作为神经网络输入。
单日负荷曲线波动:多模型预测法,可以讲每天划分为多个时段,针对每个时段单独建立模型。每个时段有每个时段的波动特性,单独建立模型更能映射负荷序列规律,并且减小网络规模。
用RBF网络一般预测效果较好,由于其为局部逼近网络,速度也极快。假如是在Matlab中,可以使用newrbe函数建立无误差的精确RBF网络(即隐层节点数等于样本数量),或者用广义网络newgrnn。据实际使用效果来看,GRNN的预测效果更佳。
关于样本的制定:你描述的是“预测模型都是n-1个历史数据作为输入,预测第n个”,这个不太理解,输入向量维数怎么会不停变动呢?通常负荷预测的输入向量选取为前1天、2天、3天、7天、14天的相应时段负荷。
Ⅵ 关于RBF神经网络的matlab问题!
运用RBF神经网络设计复合材料界面性能 刘子龙;秦伟 提出一种设计碳纤维织物/环氧复合材料界面性能的新方法。利用径向基函数神经网络,建立起工艺参数与复合材料界面性能的关系模型,同时给出实例来验证此方法的有效性。
Ⅶ MATLAB用RBF数据预测,哪位好心人可以给程序参考下,谢谢
给个例子你看看
%% 训练数据
t1 = 0.1 : 0.1 : 10;
xt1 = 3*sin(2*t1) + 3;
xt2 = exp(0.5*t1) + 10;
xt3 = 2*power((t1-4), 2);
xt4 = log2(30*t1) + 10;
xt5 = log2(40*t1) + t1 + 20;
xt6 = power((t1-11), 2);
xt7 = 4*cos(3*t1) + 10;
xt8 = xt2 + 0.9*xt4;
xt9 = xt5 + 0.9*xt5;
xt10 = xt5 + 0.9*xt6;
ty = -1 + 3*xt1 - xt9 + 0.4*(xt10-50) + xt6 + log2(xt3+7) + 0.8*exp(xt4-14) + ...
4*sin(xt7+xt8) + 0.015*power((xt2-50), 2);
%% 测试数据
t = 10/44 : 10/44 : 10;
x1 = 3*sin(2*t) + 3;
x2 = exp(0.5*t) + 10;
x3 = 2*power((t-4), 2);
x4 = log2(30*t) + 10;
x5 = log2(40*t) + t + 20;
x6 = power((t-11), 2);
x7 = 4*cos(3*t) + 10;
x8 = x2 + 0.9*x4;
x9 = x5 + 0.9*x5;
x10 = x5 + 0.9*x6;
y = -1 + 3*x1 - x9 + 0.4*(x10-50) + x6 + log2(x3+7) + 0.8*exp(x4-14) + ...
4*sin(x7+x8) + 0.015*power((x2-50), 2);
%% 创建并训练网络
net = newrb(t1, ty);
%% 测试网络
testy = sim(net, t);
%% 画图
figure('Name', '曲线图');
plot(t, y, 'r-');
hold on;
plot(t, testy, 'b+');
legend('根据原函数画出的曲线', 'RBF神经网络得到的曲线');
Ⅷ 请问matlab中RBF神经网络newrbe函数用的什么算法
newrbe是设计精确的径向基神经网络的函数,用法如:
P = [1 2 3];%输入
T = [2.0 4.1 5.9];%目标
net = newrbe(P,T);%生成神经网络
其算法是:生成的网络有2层,第一层是radbas神经元,用dist计算加权输入,用netprod计算网络输入,第二层是purelin神经元,用 dotprod计算加权输入,用netsum计算网络输入。两层都有偏差b。
newrbe先设第一层权重为p',偏差为0.8326,第二层权重IW{2,1}从第一层的仿真输出 A{1}得到,偏差 b{2}从解线性方程 [W{2,1} b{2}] * [A{1}; ones] = T 得到。
Ⅸ 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);
(9)Matlab之RBF网络污水预测扩展阅读
matlab的特点
1、具有完备的图形处理功能,实现计算结果和编程的可视化;
2、友好的用户界面及接近数学表达式的自然化语言,使学者易于学习和掌握;
3、功能丰富的应用工具箱(如信号处理工具箱、通信工具箱等) ,为用户提供了大量方便实用的处理工具。
Ⅹ 用matlab编程实现用RBF神经网络预测客流
%% 清空环境变量
clc
clear
close all
%%
a=load('walk1.txt');%读取数据 % xlsread(‘ ‘);读取execl文件
data=a(1:500,5);%样本数据和测试数据
order=5;%输入数据个数
snum=200;%训练样本数
step=3;%预测步数
input=data(1:snum);
output=data(1+order+step:snum+order+step);
delay=200;%训练样本与测试样本间时延
input1=data(1+delay:snum+delay);
output1=date(1+order+delay+step:snum+order+delay+step);
input_train=zeros(snum,order);input_test=zeros(snum,order);
for i=1:snum
input_train(i,:)=data(i:i+order-1);
input_test(i,:)=data(i+delay:i+delay+order-1);
end
%% RBF神经网络预测
%% 网络建立和训练
net=newrb(input_train',output',0.001,100,300,25);
% net=newrbe(input_train',output',100);
% net=newgrnn(input_train',output',10);
%% 网络验证
ty=sim(net,input_train');
errR=abs(output-ty');
ty1=sim(net,input_test');
errR1=abs(output1-ty1');
figure
plot(1:snum,output1,'r*-');
hold on;
plot(1:snum,ty1','kx-');
title('三步RBF');
xlabel('数据序号');
ylabel('数据值');
legend('实际值','预测值');
figure
subplot(2,1,1);
stem(1:snum,errR1,'r*');
title('三步RBF');
xlabel('数据序号');
ylabel('绝对误差值');
rbfmean = mean(errR1)
subplot(2,1,2);
stem(1:snum,
abs(errR1./output1),'r*');
title('三步RBF');
xlabel('数据序号');
ylabel('绝对误差率');
rbfpmean = mean(abs(errR1./output1))*100%%
自己对着改一下。