基于机器学习的回归拟合、详细总结
有导师学习神经网络的回归拟合
神经网络的学习规则又称神经网络的训练算法,用来计算更新神经网络的权值和阈值。
学习规则有两大类别;有导师学习和无导师学习。在有导师学习中,需要为学习规则提供一系
列正确的网络输入/输出对(即训练样本),当网络输人时,将网络输出与相对应的期望值进行
比较﹐然后应用学习规则调整权值和阈值,使网络的输出接近于期望值。而在无导师学习中,
权值和阈值的调整只与网络输人有关系,没有期望值﹐这类算法大多用聚类法,将输人模式归
类于有限的类别。本章将详细分析两种应用最广的有导师学习神经网络(BP神经网络及
RBF神经网络)的原理及其在回归拟合中的应用。
BP神经网络
题目与思路
辛烷值是汽油最重要的品质指标,传统的实验室检测方法存在样品用量大.测试周期长和费用高等问题,不适用于生产控制﹐特别是在线测试。近年发展起来的近红外光谐分析方法(NIR),作为一种快速分析方法,已广泛应用于农业.制药、生物化工.石油产品等领域。其优越性是无损检测﹑低成本、无污染、能在线分析,更适合于生产和控制的需要。针对采集得到的60组汽油样品﹐利用傅里叶近红外变换光谱仪对其进行扫描,扫描范围为900~1 700 nm,扫描间隔为2 nm,每个样品的光谱曲线共含401个波长点。样品的近红外光谐曲线如图25-3所示。同时﹐利用传统实验室检测方法测定其辛烷值含量。现要25-360个样品的近红外光谱圉求利用BP神经网络及RBF神经网络分别建立汽油样品近红外光谱及其辛烷值间的数学模型,并对模型的性能进行评价。
代码与结果
详细代码私聊笔者,有偿,非诚勿扰
% 基于近红外光谱的汽油辛烷值预测
clear
clc
% 产生训练集/测试集
load spectra_data.mat
temp = randperm(size(NIR,1));
ptrain = NIR(temp(1:50),:)';
ttrain = octane(temp(1:50),:)';
ptest = NIR(temp(51:end),:)';
ttest = octane(temp(51:end),:)';
n = size(ptest,2);
% 创建/训练BP神经网络及仿真测试
net = feedforwardnet(9);
net.trainParam.epochs = 1000;
net.trainParam.goal = 1e-3;
net.trainParam.lr = 0.01;
net = train(net,ptrain,ttrain);
tsimbp = net(ptest);
net = newrbe(ptrain,ttrain,0.5);
tsimrbf = sim(net,ptest);
% 性能评价
errorbp = abs(tsimbp-ttest)./ttest;
errorrbf = abs(tsimrbf-ttest)./ttest;
r2bp = (n*sum(tsimbp.*ttest)-sum(