QQ登录

只需要一步,快速开始

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

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

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

1186

主题

4

听众

2922

积分

该用户从未签到

跳转到指定楼层
1#
发表于 2023-11-22 17:49 |只看该作者 |倒序浏览
|招呼Ta 关注Ta
这段MATLAB代码实现了使用极限学习机(Extreme Learning Machine,ELM)进行回归的过程。下面是代码的主要功能和步骤的解释:
- T! y( b# }: ?. y3 Y& {1 Q  J9 U- {3 {+ C" J1 N! K- g! q9 v5 |# x- e
1.数据加载和划分:
7 e) T3 d" V8 o1 V* G) R2 ]2 F9 X, \3 u5 d) e  C
2.通过加载 spectra_data.mat 文件获取NIR(近红外光谱)和辛烷值数据。
" ?% j+ G7 e3 \  n3.随机将数据集分为训练集和测试集,其中训练集有50个样本,测试集有10个样本。
  1. load spectra_data.mat
    ' r' n& k4 r8 ?+ b, f! w  P- b

  2. 1 _3 a: Y: L  T* ]' Z5 u
  3. temp = randperm(size(NIR,1));; r/ w9 A  A  h' W# }& u- v  I3 Z
  4. 3 i4 X! o. i) B) p5 l8 h1 R
  5. P_train = NIR(temp(1:50),:)';1 ?1 @- N3 ~6 `. T: {2 p2 F/ Z, f
  6. & }% \* r% A' o, |, d4 t0 A
  7. T_train = octane(temp(1:50),:)';
    7 {1 h6 {6 j+ n  L2 ^4 Z2 ]

  8. $ x# G8 D: r  L+ F! V: l
  9. P_test = NIR(temp(51:end),:)';+ f- }( d( ~9 B* W* s/ H+ L\" c
  10. ; e' c. \# a) p8 [: m! u
  11. T_test = octane(temp(51:end),:)';
    5 Z3 q8 A8 d4 y& d+ U

  12. . `1 g$ |6 ~5 [( N! d
  13. N = size(P_test,2);
复制代码
4.数据归一化:
' l- y. |" A& i, t+ q* ^+ S+ [! I: z9 O
5.对训练集和测试集的输入和输出进行归一化。
  1. [Pn_train,inputps] = mapminmax(P_train);
    5 ^' E: U& m, z' n; g/ J
  2. 4 H\" S5 i! [1 j1 N
  3. Pn_test = mapminmax('apply',P_test,inputps);! I9 ~/ @* @) j! ~8 y, N
  4. ' W& |1 m3 J, S; |! T
  5. [Tn_train,outputps] = mapminmax(T_train);$ m, y4 P0 A) H

  6. ; j: \' C+ ], m9 a5 v* }\" m
  7. Tn_test = mapminmax('apply',T_test,outputps);
复制代码
6.ELM模型创建/训练:) `! y4 P# _8 a+ ?, a: a+ U

- h: M/ N  e" a. h3 R) F
) e% \+ Z: h# ~7.使用 elmtrain 函数创建并训练ELM模型。该模型有30个隐含层神经元,激活函数为sigmoid函数。
  1. [IW,B,LW,TF,TYPE] = elmtrain(Pn_train,Tn_train,30,'sig',0);
复制代码
8.ELM模型仿真测试:" s  z3 b3 V1 w! z* y8 S0 W
9.使用 elmpredict 函数对测试集进行仿真测试,得到预测结果。
  1. tn_sim = elmpredict(Pn_test,IW,B,LW,TF,TYPE);
    0 ?# I  Z# _- G

  2. \" N+ U/ _3 U5 l$ q  A
  3. T_sim = mapminmax('reverse',tn_sim,outputps);
复制代码
10.结果评估:
( a. q' o. s. t11.将真实值和预测值组合成一个矩阵 result。+ |: F  K+ t; V/ D$ m6 p  }
12.计算均方误差(MSE)和决定系数(R^2)。
  1. result = [T_test' T_sim'];
      w1 D1 h) t# H3 D% t; j3 ?( B
  2. * L, q7 |$ g2 g' f& @, G, {& S' l
  3. E = mse(T_sim - T_test);
    + X. c1 ^* {0 _/ ]/ R\" B. M/ ^
  4. 8 E0 S; ~' D$ U
  5. N = length(T_test);' v; g; k) q' ~' t

  6.   s+ E8 e+ W% Q4 b9 u- X
  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.结果可视化:, r% }0 k- U4 |2 e' e( U" K! d) p2 i
14.绘制真实值和预测值的对比图。! f8 I7 v2 O: J5 c! ^. g
15.在图标题中显示均方误差(MSE)和决定系数(R^2)。
  1. figure(1)9 S$ F: g2 x# ?6 s
  2. 8 \$ J7 L: w0 ]
  3. plot(1:N,T_test,'r-*',1:N,T_sim,'b:o')
    % h: L9 {; z* o/ m% ~) S( m7 C( ?
  4. 8 F! U+ z. g6 D5 X' v1 G
  5. grid on
    ; s2 l0 C& q5 m2 W' c

  6. 6 E/ O5 w% R/ Y6 o1 e  G' r, Q
  7. legend('真实值','预测值')) c* D+ w) V1 R5 W

  8. 7 u3 H+ U/ L. @6 f
  9. xlabel('样本编号')\" c+ u9 Y# T0 l8 j0 J1 Q/ F/ l

  10. 5 Y! ~5 t5 R& \2 w+ l( G% [$ L
  11. ylabel('辛烷值')
    $ w5 M3 N) o) Y0 j3 q

  12. ; J, h8 \8 W2 V4 U# x
  13. string = {'测试集辛烷值含量预测结果对比(ELM)';['(mse = ' num2str(E) ' R^2 = ' num2str(R2) ')']};
    & W  D, [2 e2 n
  14. # j\" F2 X: @; m$ W* A) U. ~; E
  15. title(string)
复制代码
综合而言,这段代码通过ELM模型对近红外光谱数据进行回归预测,并通过图表展示了预测结果的准确性。+ A: w" p: P$ |
0 x8 g& a0 _, c- Z: y7 O
VeryCapture_20231122173210.jpg ; |: z5 A. Z) F: a, v7 h8 o
7 |- x* R, D- h+ ~9 g

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-14 12:00 , Processed in 0.566888 second(s), 55 queries .

回顶部