QQ登录

只需要一步,快速开始

 注册地址  找回密码
查看: 2689|回复: 0
打印 上一主题 下一主题

ELM的回归拟合——基于近红外光谱的汽油辛烷值预测鸢尾花种类识别

[复制链接]
字体大小: 正常 放大

1186

主题

4

听众

2922

积分

该用户从未签到

跳转到指定楼层
1#
发表于 2023-11-22 17:49 |只看该作者 |倒序浏览
|招呼Ta 关注Ta
这段MATLAB代码实现了使用极限学习机(Extreme Learning Machine,ELM)进行回归的过程。下面是代码的主要功能和步骤的解释:0 q: g" ?! E8 p$ j

  J- \+ E' b7 M3 O, \+ d1.数据加载和划分:
& L# C5 ^, N- _! C, Y
9 k2 ]( g6 g5 D- S) L2 ?" J2.通过加载 spectra_data.mat 文件获取NIR(近红外光谱)和辛烷值数据。
9 G: ~( P# y8 n- }: q3.随机将数据集分为训练集和测试集,其中训练集有50个样本,测试集有10个样本。
  1. load spectra_data.mat6 t: z  y0 M2 F+ e0 j

  2. 3 f! Y8 a1 f: {3 O% z\" S$ S! l
  3. temp = randperm(size(NIR,1));1 [' e3 ]! ^& R! R3 b3 A
  4. : [4 e# r( ]6 h4 i% E
  5. P_train = NIR(temp(1:50),:)';. {* G5 P$ I7 b# ~( K
  6. & U- n6 g6 U# G8 g& ^- K
  7. T_train = octane(temp(1:50),:)';- ^4 u\" d8 Q. e/ J9 ?\" `

  8. 4 @+ p) {8 f- N# b
  9. P_test = NIR(temp(51:end),:)';
    - a/ f0 f9 l8 ~) u

  10. 2 K$ U9 ~\" \% f1 _) x4 U# v% V
  11. T_test = octane(temp(51:end),:)';! C. q0 ~2 c! R! A: v2 ~0 ?
  12. + X6 D4 e1 c8 o  t5 {. k  Z
  13. N = size(P_test,2);
复制代码
4.数据归一化:/ ^$ w1 z% n$ Y5 i+ Q9 \" m- M8 |
" B) [1 T- t$ M. y5 g! e
5.对训练集和测试集的输入和输出进行归一化。
  1. [Pn_train,inputps] = mapminmax(P_train);, t: b' K7 \- Z8 O! Y8 P0 P1 w: ~

  2. % ], S2 [3 T4 r& x  K
  3. Pn_test = mapminmax('apply',P_test,inputps);3 j; W2 g- j% e

  4. * t8 v6 M+ e5 T# t/ r8 _$ _\" m
  5. [Tn_train,outputps] = mapminmax(T_train);
    0 F0 Y. Z5 W2 l\" A# a& a
  6. 1 O; |; a! u+ r  _. n# E
  7. Tn_test = mapminmax('apply',T_test,outputps);
复制代码
6.ELM模型创建/训练:' u! P) U, A9 j. w
9 ?- C, |- E+ y5 L8 Z

0 G8 e- M9 j6 K: {2 w7.使用 elmtrain 函数创建并训练ELM模型。该模型有30个隐含层神经元,激活函数为sigmoid函数。
  1. [IW,B,LW,TF,TYPE] = elmtrain(Pn_train,Tn_train,30,'sig',0);
复制代码
8.ELM模型仿真测试:
( s" F! t7 P, @9.使用 elmpredict 函数对测试集进行仿真测试,得到预测结果。
  1. tn_sim = elmpredict(Pn_test,IW,B,LW,TF,TYPE);7 L8 a0 N0 w9 y

  2. 4 f; M7 Q0 r/ y$ a2 y7 T
  3. T_sim = mapminmax('reverse',tn_sim,outputps);
复制代码
10.结果评估:7 {0 r) Z; M7 ?9 `
11.将真实值和预测值组合成一个矩阵 result。
; b1 q$ e) s# E/ _, Y12.计算均方误差(MSE)和决定系数(R^2)。
  1. result = [T_test' T_sim'];7 F- C! w4 k\" |/ N9 }! z
  2. 0 _( ~' g\" b+ {; A
  3. E = mse(T_sim - T_test);, f\" A& q. Y! G8 X

  4. ) o0 S\" {$ l3 S& W6 T
  5. N = length(T_test);2 U0 M7 ~7 Z8 p  K# L9 b
  6. 4 C9 B+ K/ }/ ]5 q9 e' r' U5 N
  7. R2 = (N * sum(T_sim .* T_test) - sum(T_sim) * sum(T_test))^2 / ((N * sum((T_sim).^2) - (sum(T_sim))^2) * (N * sum((T_test).^2) - (sum(T_test))^2));
复制代码
13.结果可视化:
6 @& y4 Z( B+ N14.绘制真实值和预测值的对比图。
2 V- z& W6 z! F. A0 G: g& b15.在图标题中显示均方误差(MSE)和决定系数(R^2)。
  1. figure(1)! k8 S: o7 d( }# L0 p1 T) |

  2. ' D% U5 b  Q: ]3 A2 d' V
  3. plot(1:N,T_test,'r-*',1:N,T_sim,'b:o')% Q4 z& Y$ {: f+ M# Z

  4. $ B\" a: \\" e+ `: M2 S- V
  5. grid on5 @; b) c! q% \3 S  Q
  6. 4 \' |) T7 m- W
  7. legend('真实值','预测值')
    9 G\" @. T/ S# R
  8. , ^: C1 o2 }- u  j* ^
  9. xlabel('样本编号')
    ' f* s\" A- G& `/ }2 n+ {
  10. - G9 B  r  r9 K5 @* U: G
  11. ylabel('辛烷值')& J$ n6 S; l# z; d1 G

  12. ' c  U: i5 W! b
  13. string = {'测试集辛烷值含量预测结果对比(ELM)';['(mse = ' num2str(E) ' R^2 = ' num2str(R2) ')']};
    ) R# k8 y/ D5 J* B  [0 J
  14. 8 ]$ ?/ t% r' ~
  15. title(string)
复制代码
综合而言,这段代码通过ELM模型对近红外光谱数据进行回归预测,并通过图表展示了预测结果的准确性。
" b  d! Z2 S7 _. t! t
( @6 {% l6 Q0 T$ ?. L VeryCapture_20231122173210.jpg ) o! m, |" P$ M/ U

3 X9 C# O5 x6 Y2 a, n

chapter30 极限学习机的回归拟合及分类——对比实验研究.rar

171.96 KB, 下载次数: 0, 下载积分: 体力 -2 点

售价: 2 点体力  [记录]  [购买]

zan
转播转播0 分享淘帖0 分享分享0 收藏收藏0 支持支持0 反对反对0 微信微信
您需要登录后才可以回帖 登录 | 注册地址

qq
收缩
  • 电话咨询

  • 04714969085
fastpost

关于我们| 联系我们| 诚征英才| 对外合作| 产品服务| QQ

手机版|Archiver| |繁體中文 手机客户端  

蒙公网安备 15010502000194号

Powered by Discuz! X2.5   © 2001-2013 数学建模网-数学中国 ( 蒙ICP备14002410号-3 蒙BBS备-0002号 )     论坛法律顾问:王兆丰

GMT+8, 2026-4-10 13:41 , Processed in 0.375523 second(s), 55 queries .

回顶部