matlab global rbfnet,MATLAB之机器学习——RBF神经网络

在写RBF神经网络以前仍是说下训练集和测试集的问题!关于训练集的选取,选取要有表明性,就像选出的班干部,要能代替大家的班级风气,班级风貌(好像比方没打好)。这个数量不必定要多(多没有表明性也是枉然),但样本的表明的特征必定要所有包括在内(数量越多,样本特征全有,这样训练的模型也就更具备表明性)html

数据集主要是分如下几种:算法

训练集:学习样本数据集,经过匹配一些参数来创建一个分类器。创建一种分类的方式,主要是用来训练模型的。

验证集:对学习出来的模型,调整分类器的参数,如在神经网络中选择隐藏单元数。验证集还用来肯定网络结构或者控制模型复杂程度的参数。

测试集:主要是测试训练好的模型的分辨能力(识别率等)

RBF神经网络概述

RBF(径向基)神经网络具体原理网上有不少,我在这里就推荐我学习的一两篇给你们吧,感受还不错。这一篇(不过不是matlab语言)和这一篇(写得很详细,用的matlab语言)。

• A radial basis function network is an artificial neural network that uses radial basis functions as activation functions.

就是这么简单,径向基神经网络就是用的径向基函数做为激励函数编程

RBF的方法是要选择P个基函数,每一个基函数对应一个训练数据,因为距离(||dist||)是径向同性的,所以称为径向基函数。网络

78effcf3d8731a67d98b51b45e36a1dc.png

608d916645b3b052640e0cf7c4f01b8f.png

上面是径向基函数的线性组合,和BP神经网络(信号前向传播,偏差反向传播)的区别也是比较明显的!

BP是经过不断的调整神经元的权值来逼近最小偏差的。其方法通常是梯度降低。RBF是一种前馈型的神经网络,也就是说他不是经过不停的调整权值来逼近最小偏差的,的激励函数是通常是高斯函数和BP的S型函数不同,高斯函数是经过对输入与函数中心点的距离来算权重的。

详细区别和联系请见这里啊哈!机器学习

接下来就附上我学习的代码!函数

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

在这里说一下为何要先用matlab来入门机器学习,本人比较喜欢matlab的编程风格,调试,算法实现也比较方便,先用matlab来入门机器学习,先打下良好基础,对机器学习的深刻了解开启良好的航道。性能

至于这两个实验数据spectra_data.mat,我会在这里进行上传!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值