RBF(径向基神经网络)

GRNN广义神经网络

PNN概率神经网络

RBF算例实现(回归)

数据集

% 1. 导入数据
load spectra_data.mat
NIR输入,octane输出

%% I. 清空环境变量
clear all
clc%% II. 训练集/测试集产生
%%
% 1. 导入数据
load spectra_data.mat%%
% 2. 随机产生训练集和测试集
temp = randperm(size(NIR,1));
% 训练集——50个样本
P_train = NIR(temp(1:50),:)';
T_train = octane(temp(1:50),:)';
% 测试集——10个样本
P_test = NIR(temp(51:end),:)';
T_test = octane(temp(51:end),:)';
N = size(P_test,2);%% III. RBF神经网络创建及仿真测试
%%
% 1. 创建网络
net = newrbe(P_train,T_train,30);%30为speend%%
% 2. 仿真测试
T_sim = sim(net,P_test);%% IV. 性能评价
%%
% 1. 相对误差error
error = abs(T_sim - T_test)./T_test;%%
% 2. 决定系数R^2
R2 = (N * sum(T_sim .* T_test) - sum(T_sim) * sum(T_test))^2 / ((N * sum((T_sim).^2) - (sum(T_sim))^2) * (N * sum((T_test).^2) - (sum(T_test))^2)); %%
% 3. 结果对比
result = [T_test' T_sim' error']%% V. 绘图
figure
plot(1:N,T_test,'b:*',1:N,T_sim,'r-o')
legend('真实值','预测值')
xlabel('预测样本')
ylabel('辛烷值')
string = {'测试集辛烷值含量预测结果对比';['R^2=' num2str(R2)]};
title(string)

GRNN和PNN神经网络(分类)

数据集:经典案例鸢尾花分类

feature有4维数据:花萼长度,花萼宽度,花瓣长度,花瓣宽度

classes花的种类
‘setosa’, ‘versicolor’, ‘virginica’

%% I. 清空环境变量
clear all
clc%% II. 训练集/测试集产生
%%
% 1. 导入数据
load iris_data.mat%%
% 2 随机产生训练集和测试集
P_train = [];
T_train = [];
P_test = [];
T_test = [];
for i = 1:3temp_input = features((i-1)*50+1:i*50,:);temp_output = classes((i-1)*50+1:i*50,:);n = randperm(50);% 训练集——120个样本P_train = [P_train temp_input(n(1:40),:)'];T_train = [T_train temp_output(n(1:40),:)'];% 测试集——30个样本P_test = [P_test temp_input(n(41:50),:)'];T_test = [T_test temp_output(n(41:50),:)'];
end%% III. 模型建立
result_grnn = [];
result_pnn = [];
time_grnn = [];
time_pnn = [];
for i = 1:4for j = i:4p_train = P_train(i:j,:);p_test = P_test(i:j,:);%% % 1. GRNN创建及仿真测试t = cputime;% 创建网络net_grnn = newgrnn(p_train,T_train);% 仿真测试t_sim_grnn = sim(net_grnn,p_test);T_sim_grnn = round(t_sim_grnn);%取整操作,因为是分类,目标是整数t = cputime - t;time_grnn = [time_grnn t];result_grnn = [result_grnn T_sim_grnn'];%%% 2. PNN创建及仿真测试t = cputime;Tc_train = ind2vec(T_train);% 创建网络net_pnn = newpnn(p_train,Tc_train);% 仿真测试Tc_test = ind2vec(T_test);t_sim_pnn = sim(net_pnn,p_test);T_sim_pnn = vec2ind(t_sim_pnn);t = cputime - t;time_pnn = [time_pnn t];result_pnn = [result_pnn T_sim_pnn'];end
end%% IV. 性能评价
%%
% 1. 正确率accuracy
accuracy_grnn = [];
accuracy_pnn = [];
time = [];
for i = 1:10accuracy_1 = length(find(result_grnn(:,i) == T_test'))/length(T_test);accuracy_2 = length(find(result_pnn(:,i) == T_test'))/length(T_test);accuracy_grnn = [accuracy_grnn accuracy_1];accuracy_pnn = [accuracy_pnn accuracy_2];
end%%
% 2. 结果对比
result = [T_test' result_grnn result_pnn]
accuracy = [accuracy_grnn;accuracy_pnn]
time = [time_grnn;time_pnn]%% V. 绘图
figure(1)
plot(1:30,T_test,'bo',1:30,result_grnn(:,4),'r-*',1:30,result_pnn(:,4),'k:^')
grid on
xlabel('测试集样本编号')
ylabel('测试集样本类别')
string = {'测试集预测结果对比(GRNN vs PNN)';['正确率:' num2str(accuracy_grnn(4)*100) '%(GRNN) vs ' num2str(accuracy_pnn(4)*100) '%(PNN)']};
title(string)
legend('真实值','GRNN预测值','PNN预测值')
figure(2)
plot(1:10,accuracy(1,:),'r-*',1:10,accuracy(2,:),'b:o')
grid on
xlabel('模型编号')
ylabel('测试集正确率')
title('10个模型的测试集正确率对比(GRNN vs PNN)')
legend('GRNN','PNN')
figure(3)
plot(1:10,time(1,:),'r-*',1:10,time(2,:),'b:o')
grid on
xlabel('模型编号')
ylabel('运行时间(s)')
title('10个模型的运行时间对比(GRNN vs PNN)')
legend('GRNN','PNN')

代码解析:
因为花有三种,所以需要分段划分

for i = 1:3temp_input = features((i-1)*50+1:i*50,:);temp_output = classes((i-1)*50+1:i*50,:);n = randperm(50);% 训练集——120个样本P_train = [P_train temp_input(n(1:40),:)'];T_train = [T_train temp_output(n(1:40),:)'];% 测试集——30个样本P_test = [P_test temp_input(n(41:50),:)'];T_test = [T_test temp_output(n(41:50),:)'];
end

因为花有四个特征,我们将两两特征组合

for i = 1:4for j = i:4p_train = P_train(i:j,:);p_test = P_test(i:j,:);

代码和数据百度云

链接:https://pan.baidu.com/s/1Z1txLCFJ_Iif_skcb57PiQ
提取码:yn6c
复制这段内容后打开百度网盘手机App,操作更方便哦


作者:电气工程计算机萌新:余登武

MATLAB机器学习系列-5 RBF、GRNN和PNN神经网络原理及其例子代码相关推荐

  1. MATLAB机器学习系列-6 竞争神经网络与SOFM(SOM)神经网络原理及其例子代码

    竞争神经网络 结构上和RBF等网络是比较像的.这里的距离是负数距离,||ndist||中带一个n,表示negative.在matlab中计算方法是ngedist. 它的计算过程是:待分类样本输入后,和 ...

  2. MATLAB机器学习系列-12:蚁群算法优化原理及其matlab实现

    蚁群算法原理 概述 蚁群算法(Ant Colony Algorithm, ACA)由Marco Dorigo于1992年在他的博士论文中首次提出,该算法模拟了自然界中蚂蚁的觅食行为. 蚂蚁在寻找食物源 ...

  3. RBF、GRNN和PNN神经网络的深入浅出

    1.与BP神经网络相比,RBF.GRNN和PNN神经网络有什么特别之处? 相比最经典BP神经网络(Backpropagation neural networks,误差是反向传播,而输入到输出是前向传播 ...

  4. GRNN和PNN神经网络简介与MATLAB实践

    目录 GRNN(广义回归神经网络) PNN(概率神经网络) RBF.GRNN.PNN总结对比 MATLAB实例:鸢尾花种类识别 GRNN(广义回归神经网络)和PNN(概率神经网络),与RBF非常的相似 ...

  5. 第四课 RBF、GRNN和PNN神经网络

    1 RBF神经网络 VS BP神经网络 径向基(radial basis functions,RBF)函数网络是以径向基函数为激活函数的人工神经网络,是一种线性组合. RBF函数: RBF和BP同一个 ...

  6. BP,RBF,GRNN和PNN神经网络

    BP %% I. 清空环境变量 clear all clc%% II. 训练集/测试集产生 %% % 1. 导入数据 load spectra_data.mat%% % 2. 随机产生训练集和测试集 ...

  7. 递归神经网络 matlab,机器学习系列:递归神经网络

    原标题:机器学习系列:递归神经网络 前言 BP 神经网络,训练的时候,给定一组输入和输出,不断的对权值进行训练,使得输出达到稳定.但 BP 神经网络并不是适合所有的场景,并不真正的体现出某些场景的真正 ...

  8. MATLAB机器学习系列-11:粒子群优化原理及其matlab实现

    粒子群优化原理 粒子群算法思想来源于实际生活中鸟捕食的过程.假设在一个n维的空间中,有一群鸟(m只)在捕食,食物位于n维空间的某个点上,对于第i只鸟某一时刻来说,有两个向量描述,一个是鸟的位置向量,第 ...

  9. MATLAB机器学习系列-7支持向量机原理及其代码实现

    支持向量机原理 分类 如图,在分类中,我们需要找到一个超平面(图中包括间隔的平面)把圆圈和方框分开 原问题 间隔最小,同时保证真实输出和模型输出积大于1 对偶问题 原先的最小化问题变成了最大化问题,原 ...

最新文章

  1. R语言dplyr包mutate_if函数修改所有满足条件的数据列的内容实战
  2. altas(ajax)控件(二十三):等级选择控件Rating
  3. 如何用ABAP代码读取SAP Business partner的附件数据
  4. python正则匹配ip_[求助] 正则表达式匹配 IP 地址的问题求助
  5. 升级版授权系统+盗版追踪+域名IP双授权+在线加密系统
  6. Extjs中三种不同的数据提交方式
  7. 多线程的创建方式 你会优先选择哪一种_Python多线程入门到放弃
  8. 当云原生遇上低代码,云端开发so easy!
  9. Pytorch各种损失函数
  10. 关于keras-yolov3-deepsort
  11. 基于评论的推荐系统综述
  12. 联想集团:联想,还是可以联想的
  13. 微信小程序存在的风险_微信小程序开发技术风险存在,如何规避是重点
  14. Eclipse安装使用
  15. ctpn、east阅读要点记录
  16. ROS2与C++入门教程-增加头文件
  17. Windows快捷命令-应急响应
  18. python bottle 上传文件_Bottle + WebUploader 修改Bottle框架从而大文件上传实现方案
  19. Android服务之Service(四)--ASDL传递复杂数据对象
  20. 湖南研几科技陈总受邀参观伊宅购集团考察交流

热门文章

  1. Java实现单链表的合并(保证数据的有序性)
  2. 可视化工具第一篇(百度Echarts)
  3. FineReport——设计时无相关数据库查看权限,使用对应数据库解决方案
  4. JAVA——后端Vue动态路由配置类JavaBean封装
  5. Yuhao and a Parenthesis
  6. Obtaining the String
  7. java如何调用系统保存框_java使用poi实现excel导出之后如何弹出保存提示框
  8. python 时间序列预测 币价_python时间序列预测股票走势
  9. springboot+thymeleaf+jpa博客多级评论展示案例
  10. 一些在线的WebEdit编辑器