当前位置: 首页 > article >正文

数学建模:MATLAB极限学习机解决回归问题

一、简述

极限学习机是一种用于训练单隐层前馈神经网络的算法,由输入层、隐藏层、输出层组成。

基本原理:

输入层接受传入的样本数据。

在训练过程中随机生成从输入层到隐藏层的所有连接权重以及每个隐藏层神经元的偏置值,这些参数在整个训练过程中不会被修改。

前向传播:输入数据通过已设定的权重和偏置传递给隐藏层,经过激活函数处理后产生隐藏层的输出。

在得到隐藏层输出后,需找到从隐藏层到输出层的最佳权重。隐藏层到输出层的映射可以视为一个线性系统,通过最小二乘法方法求解该线性系统的最优解。

利用广义逆矩阵计算隐藏层到输出层的连接权重,使得最后的输出结果尽可能接近目标值。

下面matlab代码使用极限学习机对光谱数据进行回归分析,对样本数据进行预测。 

二、代码

clear 
clc

%导入数据
load spectra_data.mat

%随机产生训练集和测试集
temp = randperm(size(NIR, 1));
% 训练集
train_x = NIR(temp(1:50), :)';
train_y = octane(temp(1:50), :)';
% 测试集
test_x = NIR(temp(51:end), :)';
test_y = octane(temp(51:end), :)';
N = size(test_x, 2);

%对训练集和测试集进行归一化处理
%训练集
[train_X, inputps] = mapminmax(train_x);
test_X = mapminmax('apply', test_x, inputps);
%测试集
[train_Y, outputps] = mapminmax(train_y);
test_Y = mapminmax('apply', test_y, outputps);

%训练极限学习机模型
%传入的第三个参数为隐藏层神经元的数量
%传入的第四个参数表示激活函数的类型,'sig'表示用sigmoid函数作为隐藏层神经元的激活函数
%传出参数:IW表示输入权重;B表示隐藏层偏置;LW表示输出权重;TF表示转换函数;TYPE表示模型的类型
[IW, B, LW, TF, TYPE] = elmtrain(train_X, train_Y, 30, 'sig', 0);

%测试
sim_Y = elmpredict(test_X, IW, B, LW, TF, TYPE);

%对测试集预测结果进行反归一化处理
sim_y = mapminmax('reverse', sim_Y, outputps);

%用mse函数求出均方误差
E = mse(sim_y - test_y);

%绘图
figure(1)
plot(1:N, test_y, 'r-*', 1:N, sim_y, 'b:o')
grid on
legend('真实值','预测值')
xlabel('样本编号')
ylabel('辛烷值')

三、运行结果


http://www.kler.cn/a/568500.html

相关文章:

  • 大白话页面加载速度优化的工具与实践案例
  • 从头开始学SpringMVC—04文件处理拦截器异常处理执行流程
  • JavaScript 输入输出语句
  • HumanPro逼真角色皮肤面部动画Blender插件V1.1版
  • 蓝桥杯备考:从记忆化搜索到动态规划
  • 微服务学习(5):消息转换器由JDK序列化——JSON序列化
  • ArcGIS Pro实战技巧:灵活运用线条精准分割与裁切面要素
  • 每日学习Java之一万个为什么?(Maven篇+RPC起步+CICD起步)(待完善)
  • 力扣27.移除元素(双指针)
  • Ubuntu显卡服务器黑屏无响应的维护日志
  • [C#]C#移动文件报错完全限定文件名必须少于 260 个字符,并且目录名必须少于 248 个字符
  • 基于固定点数物理引擎的盒型碰撞器设计与实现分析
  • Qt中的事件模型
  • 【AI绘画】黑白木刻之希腊神话系列(一丹一世界)
  • MYSQL增删改查操作
  • 策略模式环境类的实现方式对比
  • 优博讯,蓝禾,三七互娱,顺丰,oppo,游卡,汤臣倍健,康冠科技,作业帮,高途教育25届春招内推
  • Spring Security 如何防止 CSRF 攻击?
  • Redis数据结构-List列表
  • 10.3 指针进阶_代码分析