数学建模:MATLAB极限学习机解决回归问题
- 手机
- 2025-09-19 07:45:03

一、简述
极限学习机是一种用于训练单隐层前馈神经网络的算法,由输入层、隐藏层、输出层组成。
基本原理:
输入层接受传入的样本数据。
在训练过程中随机生成从输入层到隐藏层的所有连接权重以及每个隐藏层神经元的偏置值,这些参数在整个训练过程中不会被修改。
前向传播:输入数据通过已设定的权重和偏置传递给隐藏层,经过激活函数处理后产生隐藏层的输出。
在得到隐藏层输出后,需找到从隐藏层到输出层的最佳权重。隐藏层到输出层的映射可以视为一个线性系统,通过最小二乘法方法求解该线性系统的最优解。
利用广义逆矩阵计算隐藏层到输出层的连接权重,使得最后的输出结果尽可能接近目标值。
下面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('辛烷值') 三、运行结果数学建模:MATLAB极限学习机解决回归问题由讯客互联手机栏目发布,感谢您对讯客互联的认可,以及对我们原创作品以及文章的青睐,非常欢迎各位朋友分享到个人网站或者朋友圈,但转载请说明文章出处“数学建模:MATLAB极限学习机解决回归问题”