一、RBF神经网络

  1. RBF神经网络概述

    • 径向基函数神经网络
    • 与 BP 神经网络的区别在于训练过程——其参数初始化具有一定方法,并非随机,隐含层的末尾使用了径向基函数,它的输出经过加权和得到 LW2.1" role="presentation">LW2.1LW2.1

  1. RBF神经网络重点函数介绍

    • newrbe()——创建精确的径向基网络

      • net = newrbe(P , T , Spread)
      • P: 输入向量
      • T:输出向量
      • Spread:径向基的扩展速度
  2. RBF代码使用实例

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

%%

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

  1. 其余函数描述和问题描述

二、GRNN、PNN神经网络

  1. GRNN神经网络概述

    • 广义回归神经网络

    • 输入层和隐含层与 RBF 神经网络一致,这里的 LW2.1" role="presentation">LW2.1LW2.1 直接由输出矩阵代替,并在隐含层与输出层之间和激活函数进行点乘

  1. PNN神经网络概述

    • 概率神经网络

    • 输入层和隐含层与RBF神经网络一致,不同点是最后的输出环节使用了一个竞争函数

  1. GRNN、PNN神经网络重点函数介绍

    • newgrnn()——创建广义回归神经网络

      • net = newgrnn(P,T)
      • P,T 和RBF神经网络一致
    • newpnn()——创建概率神经网络
      • net = newpnn(P,T)
      • P,T 同上
  2. 代码使用实例

%% I. 清空环境变量

clear all

clc

%% II. 训练集/测试集产生

%%

% 1. 导入数据

load iris_data.mat

%%

% 2 随机产生训练集和测试集

P_train = [];

T_train = [];

P_test = [];

T_test = [];

for i = 1:3

temp_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:4

for j = i:4

p_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:10

accuracy_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预测值’)

RBF、GRNN 和 PNN 神经网络在Matlab中的用法的更多相关文章

  1. 向量与矩阵的范数及其在matlab中的用法(norm)

    一.常数向量范数 \(L_0\) 范数 \(\Vert x \Vert _0\overset{def}=\)向量中非零元素的个数 其在matlab中的用法: sum( x(:) ~= 0 ) \(L_ ...

  2. Matlab中imagesc用法

    来源:https://ww2.mathworks.cn/help/matlab/ref/imagesc.html?searchHighlight=imagesc&s_tid=doc_srcht ...

  3. interp1一维数据插值在matlab中的用法

    转载:https://ww2.mathworks.cn/help/matlab/ref/interp1.html?s_tid=srchtitle#btwp6lt-2_1 interp1 一维数据插值( ...

  4. matlab中set用法

    来源:https://www.cnblogs.com/sddai/p/5467500.html 1.MATLAB给每种对象的每一个属性规定了一个名字,称为属性名,而属性名的取值成为属性值.例如,Lin ...

  5. Matlab中ismember用法

    >> a = magic(3) a = 8 1 6 3 5 7 4 9 2 >> ismember(a,3) ans = 0 0 0 1 0 0 0 0 0 >> ...

  6. 详细MATLAB 中BP神经网络算法的实现

    MATLAB 中BP神经网络算法的实现 BP神经网络算法提供了一种普遍并且实用的方法从样例中学习值为实数.离散值或者向量的函数,这里就简单介绍一下如何用MATLAB编程实现该算法. 具体步骤   这里 ...

  7. bp神经网络及matlab实现

    本文主要内容包含: (1) 介绍神经网络基本原理,(2) AForge.NET实现前向神经网络的方法,(3) Matlab实现前向神经网络的方法 . 第0节.引例  本文以Fisher的Iris数据集 ...

  8. MATLAB中绘制质点轨迹动图并保存成GIF

    工作需要在MATLAB中绘制质点轨迹并保存成GIF以便展示. 绘制质点轨迹动图可用comet和comet3命令,使用例子如下: t = 0:.01:2*pi;x = cos(2*t).*(cos(t) ...

  9. matlab 中 eps 的分析

    eps(a)是|a|与大于|a|的最小的浮点数之间的距离,距离越小表示精度越高.默认a=1: 这里直接在matlab中输入:eps == eps(1)(true). 我们知道浮点数其实是离散的,有限的 ...

随机推荐

  1. Win自带mastc远程Cenots7桌面

    1.Centos7安装桌面 yum -y groups install "GNOME Desktop" startx 2.安装xrdp 操作需要root用户权限,所以,我们先切换为 ...

  2. Spring Cloud Alibaba学习笔记(13) - Spring Cloud Stream的监控与异常处理

    Spring Cloud Stream监控 Spring Boot Actuator组件用于暴露监控端点,很多监控工具都需要依赖该组件的监控端点实现监控.而项目集成了Stream及Actuator后也 ...

  3. 在论坛中出现的比较难的sql问题:32(row_number函数+子查询 sql循环取差值)

    原文:在论坛中出现的比较难的sql问题:32(row_number函数+子查询 sql循环取差值) 所以,觉得有必要记录下来,这样以后再次碰到这类问题,也能从中获取解答的思路. sql循环取差值,该怎 ...

  4. 查看IIS错误日志

    部署在IIS中的程序,难免出现数据产生异常 在事件查看器中,可以看出来具体的错误信息,代码定位

  5. C# Aforge设置摄像头视频属性和控制属性

    修改后的代码:github 一.调用windows自身摄像头属性设置窗口 使用VideoCaptureDevice对象的DisplayPropertyPage(IntPtr parentWindow) ...

  6. node中用的cookie-parser插件设置的max-age,和普通正常设置max-age的计算方式不一样

    在cookie-parser中通过max-age设置的cookie的过期时间是按照毫秒计算的; 在普通设置的时候max-age后面的值是按秒计算的;

  7. canvas 绘制动态圆环进度条

    由于使用的是vue开发,所以就展示一下绘制函数好了,上图是效果图 drawMain(drawing_elem, percent, forecolor, bgcolor) { /* @drawing_e ...

  8. [原]Object-Oriented Programming With ANSI-C

    前一段时间面试被问到一个问题,怎么用C去实现面向对象的特性,比如封装.继承和多态.我心想这不是闲的蛋疼么,好吧,我承认我不会...[大哭].然后去网上找相关的文章,有文章推荐了<Object-O ...

  9. linux7 上安装mongodb4.2.1操作步骤

    MongoDB是一个通用的.基于文档的分布式数据库,它是为现代应用程序开发人员和云时代而构建的.没有数据库能让你更有效率. 1.下载需要的软件包https://www.mongodb.com/down ...

  10. CentOS7.x安装nginx

    1.安装先决条件 yum install yum-utils 2.设置yum存储库和创建/etc/yum.repos.d/nginx.repo 使用以下内容命名的文件 :稳定版 [nginx-stab ...