matlab基于近红外光谱的汽油辛烷值预测实例分析
本文小编为大家详细介绍“matlab基于近红外光谱的汽油辛烷值预测实例分析”,内容详细,步骤清晰,细节处理妥当,希望这篇“matlab基于近红外光谱的汽油辛烷值预测实例分析”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。
成都创新互联公司-专业网站定制、快速模板网站建设、高性价比诏安网站开发、企业建站全套包干低至880元,成熟完善的模板库,直接使用。一站式诏安网站制作公司更省心,省钱,快速模板网站建设找我们,业务覆盖诏安地区。费用合理售后完善,十余年实体公司更值得信赖。
对比两种应用广泛的有导师学习神经网络——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基于近红外光谱的汽油辛烷值预测实例分析”文章已经介绍完毕,想要掌握这篇文章的知识点还需要大家自己动手实践使用过才能领会,如果想了解更多相关内容的文章,欢迎关注创新互联行业资讯频道。
当前文章:matlab基于近红外光谱的汽油辛烷值预测实例分析
文章来源:http://ybzwz.com/article/pjhdep.html