用matlab神经网络工具箱构建RBF神经网络,跪求源程序!

用matlab神经网络工具箱构建RBF神经网络,跪求源程序!,第1张

希望对您有用

clc

clear

close all

%---------------------------------------------------

% 产生训练样本与测试样本,每一列为一个判老袭尘样本

P1 = [rand(3,5),rand(3,5)+1,rand(3,5)+2]

T1 = [repmat([100],1,5),repmat([010],1,5),repmat([001],1,5)]

P2 = [rand(3,5),rand(3,5)+1,rand(3,5)+2]

T2 = [repmat([100],1,5),repmat([010],1,5),repmat([001],1,5)]

%---------------------------------------------------

% 归一化

[PN1,minp,maxp] = premnmx(P1)

PN2 = tramnmx(P2,minp,maxp)

%---------------------------------------------------

% 训练

switch 2

case 1

% 神经元数是训练样本个数

spread = 1 % 此值越大,覆盖的函数值就大(默认为1)

net = newrbe(PN1,T1,spread)

case 2

% 神经元数逐步增加,最多就是训练样本个数

goal = 1e-4 % 训练误差的平方和(默认为0)

spread = 1 % 此值越大,需要的神经元就越少(默认为1)

MN = size(PN1,2) % 最大神经元数(默认为训掘禅升练样本个数)

DF = 1% 显示间隔(默认为25)

net = newrb(PN1,T1,goal,spread,MN,DF)

case 3

spread = 1 % 此值越大,需要的神经元就越少(默认为1)

net = newgrnn(PN1,T1,spread)

end

%---------------------------------------------------

% 测试

Y1 = sim(net,PN1)% 训练样本实际输出

Y2 = sim(net,PN2)% 测试样本实际输出

Y1 = full(compet(Y1))% 竞争输出

Y2 = full(compet(Y2))

%---------------------------------------------------

% 结果统计

Result = ~sum(abs(T1-Y1)) % 正确分类显示为1

Percent1 = sum(Result)/length(Result) % 训练样本正确分类率

Result = ~sum(abs(T2-Y2)) % 正确分类显示为1

Percent2 = sum(Result)/length(Result) % 测试样本正确分类率

%% 清空环境变量

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%%

自己对着改一下。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/12363768.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-24
下一篇 2023-05-24

发表评论

登录后才能评论

评论列表(0条)

保存