用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) % 测试样本正确分类率

matlab编写BP神经网络很方便的,这个工作不用像编程序的C什么的那样还要编写算睁肢法。这个算法早已经在软件的库里提供了。你只要用一条语句就出来了。把参数,深度和节点固定的往里一代数就可以了。还有一点陪型,注意最后结果的收敛性,神经网络发展一直是曲折前进的,为什么这样,现在不太给力,因为面临着一个收敛的问题,实现起来效悉乱世果不好。这些程序网上有很多,你借一本基本的神经网络的书里面也有。望采纳。

您好:

clc

clear all

close all

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

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

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

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

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

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

xn_train = n1 % 训练样本

dn_train = x1 % 训练目标

xn_test = n2 % 测试样本

dn_test = x2 % 测试目标

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

% 训练与测试

switch 3

case 1

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

P = xn_train

T = dn_train

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

net = newrbe(P,T,spread)

case 2

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

P = xn_train

T = dn_train

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

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

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

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

net = newrb(P,T,goal,spread,MN,DF)

case 3

P = xn_train

T = dn_train

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

net = newgrnn(P,T,spread)

end

X = sim(net,xn_test) % 测试 - 输出为预测值

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

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

% 结键毕哗果统计

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

Percent = sum(Result)/length(Result) % 正确分类率


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

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

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

发表评论

登录后才能评论

评论列表(0条)

保存