千家信息网

matlab基于近红外光谱的汽油辛烷值预测实例分析

发表于:2025-01-23 作者:千家信息网编辑
千家信息网最后更新 2025年01月23日,本文小编为大家详细介绍"matlab基于近红外光谱的汽油辛烷值预测实例分析",内容详细,步骤清晰,细节处理妥当,希望这篇"matlab基于近红外光谱的汽油辛烷值预测实例分析"文章能帮助大家解决疑惑,下
千家信息网最后更新 2025年01月23日matlab基于近红外光谱的汽油辛烷值预测实例分析

本文小编为大家详细介绍"matlab基于近红外光谱的汽油辛烷值预测实例分析",内容详细,步骤清晰,细节处理妥当,希望这篇"matlab基于近红外光谱的汽油辛烷值预测实例分析"文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。

对比两种应用广泛的有导师学习神经网络--BP神经网络、RBF神经网络,在回归拟合中的应用。

%% 清空环境变量

clear

clc


%% 训练集/测试集产生

load spectra_data.mat

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

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


%% BP神经网络创建、训练及仿真测试


% 创建网络

net = newff(P_train,T_train,9);

% 设置训练参数

net.trainParam.epochs = 1000;

net.trainParam.goal = 1e-3;

net.trainParam.lr = 0.01;

% 训练网络

net = train(net,P_train,T_train);

% 仿真测试

T_sim_bp = sim(net,P_test);


%% RBF神经网络创建及仿真测试


% 创建网络

net = newrbe(P_train,T_train,0.3);

% 仿真测试

T_sim_rbf = sim(net,P_test);


%% 性能评价


% 相对误差error

error_bp = abs(T_sim_bp - T_test)./T_test;

error_rbf = abs(T_sim_rbf - T_test)./T_test;

% 决定系数R^2

R2_bp = (N * sum(T_sim_bp .* T_test) - sum(T_sim_bp) * sum(T_test))^2 / ((N * sum((T_sim_bp).^2) - (sum(T_sim_bp))^2) * (N * sum((T_test).^2) - (sum(T_test))^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_bp = [T_test' T_sim_bp' T_sim_rbf' error_bp' error_rbf'];


%% 绘图

figure

plot(1:N,T_test,'b:*',1:N,T_sim_bp,'r-o',1:N,T_sim_rbf,'k-.^')

legend('真实值','BP预测值','RBF预测值')

xlabel('预测样本')

ylabel('辛烷值')

string = {'测试集辛烷值含量预测结果对比(BP vs RBF)';['R^2=' num2str(R2_bp) '(BP)' ' R^2=' num2str(R2_rbf) '(RBF)']};

title(string)

读到这里,这篇"matlab基于近红外光谱的汽油辛烷值预测实例分析"文章已经介绍完毕,想要掌握这篇文章的知识点还需要大家自己动手实践使用过才能领会,如果想了解更多相关内容的文章,欢迎关注行业资讯频道。

0