QQ登录

只需要一步,快速开始

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

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

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

1189

主题

4

听众

2934

积分

该用户从未签到

跳转到指定楼层
1#
发表于 2023-11-22 17:49 |只看该作者 |正序浏览
|招呼Ta 关注Ta
这段MATLAB代码实现了使用极限学习机(Extreme Learning Machine,ELM)进行回归的过程。下面是代码的主要功能和步骤的解释:" _2 U) V0 o. o' p) j/ Q
  B+ m7 q/ p  ], a
1.数据加载和划分:
& i8 g& J9 \( X- Z2 u5 m. W
7 x) T' i) ]% A1 O! Q# ~/ a2.通过加载 spectra_data.mat 文件获取NIR(近红外光谱)和辛烷值数据。) i) D+ E" t; B6 Y. C/ g
3.随机将数据集分为训练集和测试集,其中训练集有50个样本,测试集有10个样本。
  1. load spectra_data.mat
    ; e- t3 x  y# E4 E1 w\" _

  2. ( [5 E  p' X3 d9 D
  3. temp = randperm(size(NIR,1));! R: a0 [# R% {( M4 `

  4. + p5 J+ T\" M2 w$ s! J
  5. P_train = NIR(temp(1:50),:)';' W( t+ l# F0 J1 _, h) v3 a7 @$ f
  6. 7 j0 ~  E0 G+ f2 k8 h8 C
  7. T_train = octane(temp(1:50),:)';- i( V* Y8 V4 n7 q
  8. 7 b* H4 Y# ?3 q4 k& L
  9. P_test = NIR(temp(51:end),:)';
    7 W) C6 L: b1 T. t8 c
  10. 0 G7 B# i/ d. e; u  ^( q: A
  11. T_test = octane(temp(51:end),:)';
    5 d& W8 ~( t& J# m\" v3 [1 R/ a5 x/ M1 R

  12. 2 a6 h$ k5 w  @, K4 D7 }/ e
  13. N = size(P_test,2);
复制代码
4.数据归一化:0 o  c! `% O7 c* f

* D  n( A; |( b. u: F- b8 j5.对训练集和测试集的输入和输出进行归一化。
  1. [Pn_train,inputps] = mapminmax(P_train);
    , ^! d7 j/ T- r

  2. $ M( |& q, Z  v' ~& R- k
  3. Pn_test = mapminmax('apply',P_test,inputps);
    ) @( U0 m) ?# j$ M
  4. 7 h5 T7 o8 Z% o2 P* c' ]) @
  5. [Tn_train,outputps] = mapminmax(T_train);; }9 [: D8 n3 P; E% L* Q
  6. 9 c* w( m) e3 Y
  7. Tn_test = mapminmax('apply',T_test,outputps);
复制代码
6.ELM模型创建/训练:
, i  j4 {1 D. v6 U( u$ T( n$ Y- h
& S0 o5 M7 H1 l3 m: ^( D
$ k5 m' L3 e  Q- g" |7.使用 elmtrain 函数创建并训练ELM模型。该模型有30个隐含层神经元,激活函数为sigmoid函数。
  1. [IW,B,LW,TF,TYPE] = elmtrain(Pn_train,Tn_train,30,'sig',0);
复制代码
8.ELM模型仿真测试:" o( s+ Q. m5 u2 W
9.使用 elmpredict 函数对测试集进行仿真测试,得到预测结果。
  1. tn_sim = elmpredict(Pn_test,IW,B,LW,TF,TYPE);
    $ W  r# \0 }9 `  l2 i+ U' Q8 ]
  2. / Z. Y2 W9 P. j# e
  3. T_sim = mapminmax('reverse',tn_sim,outputps);
复制代码
10.结果评估:, C1 b/ x+ W1 v$ @% [$ i
11.将真实值和预测值组合成一个矩阵 result。4 N  q+ e) ?4 I, k5 ~2 V. X
12.计算均方误差(MSE)和决定系数(R^2)。
  1. result = [T_test' T_sim'];9 _# b. X1 i( `4 u* `! _9 X

  2. 5 D6 K+ r$ }4 T, l* n, u9 b& T+ }
  3. E = mse(T_sim - T_test);
    $ j' a1 _1 B6 O
  4. # I$ A# k6 _% T# V! q
  5. N = length(T_test);) X1 Q3 J: i/ ]9 y\" c
  6. ( s0 `& |( t$ f+ q0 ^5 ~% P) V
  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.结果可视化:9 Q( R) I, {" a  ^/ U. i0 \7 F
14.绘制真实值和预测值的对比图。' a; Q' z' V* |. g1 k$ _
15.在图标题中显示均方误差(MSE)和决定系数(R^2)。
  1. figure(1)! D9 r: W6 Z) W
  2. \" O8 O0 z3 F7 o6 a; v' |
  3. plot(1:N,T_test,'r-*',1:N,T_sim,'b:o')4 F) V) U3 {( U+ [
  4. 8 Z1 w+ c9 z' q$ }+ Y! _* v
  5. grid on! e( x7 D& K# ^& F; P
  6. & q& V\" e' u0 q* p( V. P  M( o0 |& O
  7. legend('真实值','预测值')
    0 E) m3 c' z+ M  f# \$ L6 I; U* S\" ]9 M
  8. % R! x5 T$ r  J: V) M
  9. xlabel('样本编号')
    5 [( e3 O! q8 D4 @0 _6 B* w- z

  10. 3 |4 Y/ u) M1 ]! Q
  11. ylabel('辛烷值')! p. Y& K# z7 D  P1 ]% B3 b2 F5 Q
  12. : h6 t9 T/ Y: ~0 U% s
  13. string = {'测试集辛烷值含量预测结果对比(ELM)';['(mse = ' num2str(E) ' R^2 = ' num2str(R2) ')']};
      d. D5 n( o! E0 L

  14. + \/ `& W9 c2 q- }4 n1 ~
  15. title(string)
复制代码
综合而言,这段代码通过ELM模型对近红外光谱数据进行回归预测,并通过图表展示了预测结果的准确性。
0 G( T& G  U* s% ~4 Q' c; {& V9 q$ f' C7 R$ e2 N0 M% |
VeryCapture_20231122173210.jpg
! Q. |) k, r1 A" v" M4 K( f5 g6 D3 i3 K& v+ f1 X4 ]

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-7-30 07:25 , Processed in 0.299033 second(s), 55 queries .

回顶部