创建博客 登录  
 关注
   显示下一条  |  关闭

赣江7号pihaiping1007

要么好好活着,要么赶紧去死!

 
 
 

日志

 
 

引用 RBF神经网络用于函数拟合与模式识别的Matlab示例程序  

2010-04-29 23:22:21|  分类: 摘抄 |  标签: |字号 订阅

 

引用

shangRBF神经网络用于函数拟合与模式识别的Matlab示例程序

RBF神经网络用于函数拟合与模式识别的Matlab示例程序

%文中出现的所有归一化函数,都以被抛弃(obselete),使用方法也彻底改变了。Matlab7.8提供的归一化函数有fixunknowns, mapminmax, processpca,mapstd四个,具体如何使用及原理查看Matlab帮助

%RBF函数参数调用格式以函数名没有改变,可以正常使用

% RBF 神经网络用于模式分类

% 使用平台 - Matlab6.5

复制内容到剪贴板

代码:

clc

clear

close all

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

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

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

T1 = [repmat([1;0;0],1,5),repmat([0;1;0],1,5),repmat([0;0;1],1,5)];

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

T2 = [repmat([1;0;0],1,5),repmat([0;1;0],1,5),repmat([0;0;1],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) % 测试样本正确分类率

  评论这张
转发至微博
转发至微博
0   分享到:        
阅读(223)| 评论(0)| 引用 (0) |举报
<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--相关文章--> <#--历史上的今天--> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2012