RBF神经网络——基于近红外光谱的汽油辛烷值预测
RBF神经网络——基于近红外光谱的汽油辛烷值预测
问题描述
辛烷值是汽油最重要的品质指标,传统的实验室检测方法存在样品用量大、测试周期长和费用高等问题,不适用与生产控制,特别是在线测试,近红外光谱分析方法(NIR),作为一种快速分析方法,已经广泛应用于农业、制药、生物化工、石油产品等领域。其优越性是无损检测、低成本、无污染、能在线分析,更适合于生产和控制的需要。
针对采集得到的60组汽油样品,利用傅立叶近红外变换光谱仪对其扫描,扫描范围为900~1700nm,扫描间隔为2nm,每个样品的光谱曲线共含有401个波长点。同时,利用传统实验室检测方法测定其辛烷值含量。现要求利用RBF神经网络建立汽油样品近红外光谱与其辛烷值之间的关系的数学模型,并对模型的性能进行评价。
获取数据
公共号“不研而喻”中回复“汽油辛烷值预测”,获取本文所需数据。
公共号“不研而喻”中回复“书籍”,获取50本数据分析、python、统计学经典书籍。
扫描二维码,在“不研而喻”中回复“汽油辛烷值预测”
解题思路及步骤
1.产生训练集/测试集
为了保证建立的模型具有良好的泛化能力,要求训练集样本足够多,且具有良好的代表性。一般认为,训练集样本数量占总体样本数量的2/3-3/4为宜,剩余的1/4-1/3作为测试集样本。同事,尽量使得训练集与测试集样本的分布规律近似相同。
60个样品的光谱及辛烷值数据保存在spectra_data.mat文件中,该文件包含两个变量矩阵:NIR为60行401列的样品光谱数据,octane为60行1列的辛烷值数据。这里采用随机法产生训练集和测试集,随机产生50个样品作为训练集,剩余的10个样品作为测试集。
2.创建/训练RBF神经网络及仿真测试
创建RBF神经网络时需要考虑spread的值对网络性能的影响。一般而言,spread的值越大,函数的拟合就越平滑。然而,过大的spread值将需要非常多的神经元以适应函数的快速变化;反之,若spread值太小,则意味着需要许多的神经元来适应函数的缓慢变化,从而导致网络性能不好。
利用MATLAB神经网络自带工具箱的函数,可以方便的进行RBF神经网络创建、训练及仿真测试。
3.性能评价
通过计算测试集预测值与真实值间的误差,可以对模型的泛化能力进行评价。在此基础上,可以进行进一步的研究和改善。
相对误差越小,表明模型的性能越好。决定系数范围在[0,1]内,越接近于1,表明模型的拟合性能越好,反之,越趋近于0,表明模型的拟合性能越差。
4.绘图
为了更为直观地对结果进行观察和分析,以图片的形式将结果呈现出来。
Matalab代码
公共号“数据统计分析与挖掘”中回复“汽油辛烷值预测”,获取本文所需数据。
或,扫描上方二维码,回复“汽油辛烷值预测”,获取本文所需数据。
clear all;clc
%% 训练集/测试集产生
load spectra_data.mat;
temp = randperm(size(NIR, 1));
P_train = NIR(temp(1:50), :)';
T_train = octane(temp(1:50), :)';
P_test = NIR(temp(51:end), :)';
T_test = octane(temp(51:end), :)';
N = size(P_test, 2);
%% RBF神经网络创建及仿真测试
net = newrbe(P_train, T_train, 0.3);
T_sim_rbf = sim(net, P_test);
%% 性能评价
% 相对误差error
error_rbf = abs(T_sim_rbf - T_test)./T_test;
% 决定系数R^2
R2_rbf = (N*sum(T_sim_rbf.*T_test)-sum(T_sim_rbf)*sum(T_test))^2 .../ ((N*sum((T_sim_rbf).^2)-(sum(T_sim_rbf))^2) ...*(N*sum((T_test).^2)-(sum(T_test))^2));
% 结果对比
result_rbf = [T_test' T_sim_rbf' error_rbf'];
disp(result_rbf);
%% 绘图
figure();
plot(1:N, T_test, 'b:*', 1:N, T_sim_rbf, 'k-.^');
legend('真实值', ' RBF预测值');
xlabel('预测样本');
ylabel('辛烷值');
string = {'测试集辛烷值含量预测结果(RBF)'; ...['R^2=' num2str(R2_rbf) '(RBF)']};
title(string);
RBF神经网络——基于近红外光谱的汽油辛烷值预测相关推荐
- BP神经网络——基于近红外光谱的汽油辛烷值预测
BP神经网络--基于近红外光谱的汽油辛烷值预测 问题描述 获取数据 解题思路及步骤 1.产生训练集/测试集 2.创建/训练BP神经网络及仿真测试 3.性能评价 4.绘图 Matalab代码 问题描述 ...
- 《MATLAB智能算法30个案例》:第25章 有导师学习神经网络的回归拟合——基于近红外光谱的汽油辛烷值预测
<MATLAB智能算法30个案例>:第25章 有导师学习神经网络的回归拟合--基于近红外光谱的汽油辛烷值预测 1. 前言 2. MATLAB 仿真示例 3. 小结 1. 前言 <MA ...
- 有导师学习神经网络的回归拟合——基于近红外光谱的汽油辛烷值预测
文章目录 一.理论基础 1.BP神经网络概述 2.RBF神经网络概述 二.案例背景 1.问题描述 2.解题思路与步骤 三.MATLAB程序实现 1.产生训练集/测试集 2.创建/训练BP神经网络及仿真 ...
- RBF:RBF基于近红外光谱的汽油辛烷值含量预测结果对比
RBF:RBF基于近红外光谱的汽油辛烷值含量预测结果对比 目录 输出结果 代码设计 输出结果 代码设计 load spectra_data.mat temp = randperm(size(NIR ...
- MAT之NN:实现BP神经网络的回归拟合,基于近红外光谱的汽油辛烷值含量预测结果对比
MAT之NN:实现BP神经网络的回归拟合,基于近红外光谱的汽油辛烷值含量预测结果对比 目录 输出结果 实现代码 输出结果 实现代码 load spectra_data.mat plot(NIR') t ...
- matlab光谱实验,实验四Matlab神经网络及应用于近红外光谱的汽油辛烷值预测
. 实验四Matlab神经网络以及应用于汽油辛烷值预测 一.实验目的 1. 掌握MATLAB创建BP神经网络并应用于拟合非线性函数 2. 掌握MATLAB创建REF神经网络并应用于拟合非线性函数 3. ...
- matlab里BP神经网络实现实例2汽油辛烷值预测
一.引入 1.首先得到数据,比如数据是从exce导入,也可以是现成的.mat文件.60组汽油样品,利用傅里叶近红外变换光谱仪对其进行扫描,扫描范围900~1700nm,扫描间隔2nm,每个样品的光谱曲 ...
- 有监督学习神经网络的回归拟合——基于红外光谱的汽油辛烷值预测(Matlab代码实现)
目录 1 概述 2 部分运行结果 3 Matlab代码实现 4 参考文献 1 概述 红外光谱法(IR)属于分子振动光谱技术,波数范围在4000cm-1-400cm-1之间,它的原理是基于分子中各类官能 ...
- BP神经网络实现汽油辛烷值预测,《MATLAB源码+数据集》
发展背景 在人工神经网络的发展历史上,感知机(Multilayer Perceptron,MLP)网络曾对人工神经网络的发展发挥了极大的作用,也被认为是一种真正能够使用的人工神经网络模型,它的出现曾掀 ...
最新文章
- 两分钟用C#搭建IE BHO勾子, 窃取密码
- Leetcode 18. 四数之和 (每日一题 20211011)
- python dataframe切片_python-如何避免“试图在DataFrame的切片副本上设置值”?
- python基础——使用模块
- 【Elasticsearch】Elasticsearch 优化写入流程实现NRT近实时(filesystem cache,refresh)
- 【Java与智能设备】用户界面基础
- android崩解日志,android – 使用rxJava2和改造的UndeliverableException
- 基于wireshark和NetAssist的单机模拟抓TCP包:三次握手、四次挥手、长连接
- 教你一步步实现bibibi弹幕功能。
- 软考系统集成项目管理工程师全真模拟题(含答案、解析)
- 【计算机游戏开发】游戏交互界面设计
- 将一个数组分成2个数组,使得2个数组的差值最小
- 为什么说盲盒市场充满机遇
- 【C语言】已知三角形三边长,求三角形面积
- 金融机构的IT团队前置
- 高频强调滤波增强图像
- 【c++ -- 谓词】
- 根据html改为ftl模板生成pdf文件,支持中文及换行
- 一句话木马@eval($_POST[“cmd“]);是什么意思(超详细)
- 字体像素html,Chrome中的字体像素问题(HTML5 / CSS3)