QQ登录

只需要一步,快速开始

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

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

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

1186

主题

4

听众

2922

积分

该用户从未签到

跳转到指定楼层
1#
发表于 2023-11-22 17:49 |只看该作者 |倒序浏览
|招呼Ta 关注Ta
这段MATLAB代码实现了使用极限学习机(Extreme Learning Machine,ELM)进行回归的过程。下面是代码的主要功能和步骤的解释:
" Z, x9 W7 }% ], a1 D, R" f. p0 ~4 n) `1 l( a0 e+ a( d
1.数据加载和划分:% k$ \* D  O, d7 m8 P! W( M
. m) H9 U7 S% A7 M* g& y7 d
2.通过加载 spectra_data.mat 文件获取NIR(近红外光谱)和辛烷值数据。) p: o1 [  C2 D. y7 E
3.随机将数据集分为训练集和测试集,其中训练集有50个样本,测试集有10个样本。
  1. load spectra_data.mat
    5 o$ v( M6 e- n% Q0 \7 k\" w
  2. / M% e% f: {$ `, C! [6 h  [5 |
  3. temp = randperm(size(NIR,1));# \( K  A8 J7 A# x

  4. 6 r# c+ {: V. y% b: P
  5. P_train = NIR(temp(1:50),:)';0 r: G( G% }  A4 q
  6. ' I1 ?6 S8 r( P& l
  7. T_train = octane(temp(1:50),:)';
    9 a+ N! V& s+ s\" A& k

  8. \" y' g! e; e' M' c, o+ h* O
  9. P_test = NIR(temp(51:end),:)';3 e/ i% Y% k' m' {  B
  10.   h- q\" S' {% [  x
  11. T_test = octane(temp(51:end),:)';/ p- y8 K* N/ y& |$ N\" D* D

  12. ! e, R, f  K. u& U: v# V
  13. N = size(P_test,2);
复制代码
4.数据归一化:2 y: g3 ^& M' `% k
' }* O7 d  ^" R; ]5 R
5.对训练集和测试集的输入和输出进行归一化。
  1. [Pn_train,inputps] = mapminmax(P_train);
    7 v\" W: U2 h2 r5 L! R& b

  2. ; O6 g# D% N. y* `; _- Z& p$ Z! m2 d
  3. Pn_test = mapminmax('apply',P_test,inputps);. W. e/ I: U( s: v' P& `7 O9 {8 \

  4. : J+ n' K3 v9 c. O; h: P/ @8 S3 a
  5. [Tn_train,outputps] = mapminmax(T_train);
    + j' S% z5 I2 s  v9 g; m

  6. 3 t  v6 b/ z, [0 n# S; O
  7. Tn_test = mapminmax('apply',T_test,outputps);
复制代码
6.ELM模型创建/训练:% ^/ |: r. A2 f4 i
' ^! f1 W2 `" X# p8 p" Y7 l7 W+ m

2 T. z$ @+ `8 h8 k7.使用 elmtrain 函数创建并训练ELM模型。该模型有30个隐含层神经元,激活函数为sigmoid函数。
  1. [IW,B,LW,TF,TYPE] = elmtrain(Pn_train,Tn_train,30,'sig',0);
复制代码
8.ELM模型仿真测试:, D; c+ V' u8 ^( Z
9.使用 elmpredict 函数对测试集进行仿真测试,得到预测结果。
  1. tn_sim = elmpredict(Pn_test,IW,B,LW,TF,TYPE);! G7 y% N\" d) R1 v
  2. 9 `. H, @/ @5 K0 u- a, z
  3. T_sim = mapminmax('reverse',tn_sim,outputps);
复制代码
10.结果评估:
  B& I5 ^( f+ e3 J3 Q0 R0 i1 g/ d11.将真实值和预测值组合成一个矩阵 result。2 h& o4 y2 ]8 @! e6 {) \2 f$ @5 j
12.计算均方误差(MSE)和决定系数(R^2)。
  1. result = [T_test' T_sim'];
    9 w9 d& L5 C7 f% [5 z' A
  2. 3 V! F& J\" k\" @4 s) \7 i9 j0 e
  3. E = mse(T_sim - T_test);
    7 x% b4 I& }# p5 o  j6 p2 I

  4. - r2 q( T7 b2 d- M
  5. N = length(T_test);: J7 g; k2 |$ X+ `  p8 t: d  I
  6. ' l. R# [- [9 j\" ^
  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.结果可视化:: ^8 B7 q  M# k+ x5 m* D+ H4 ?
14.绘制真实值和预测值的对比图。
7 Z. V# Y4 K/ {3 ^15.在图标题中显示均方误差(MSE)和决定系数(R^2)。
  1. figure(1): j) T3 M6 P( }

  2. 1 Z3 D% @5 ]$ [\" o8 I
  3. plot(1:N,T_test,'r-*',1:N,T_sim,'b:o')
    # I8 H- q\" o4 U& r( R# K, x
  4. ; h8 v5 v5 |0 ?0 s
  5. grid on
    1 c* g: m( s' a! C  p1 W+ \

  6. , o- u7 J: X) Q
  7. legend('真实值','预测值')
    ! C& H* S# h! y- y- X5 q
  8. + e  N5 Q1 e4 U  B1 D* s; [) P- g8 j- l
  9. xlabel('样本编号')
    ' r8 o2 o' Q4 ^% o3 V, z

  10. & s4 Y# ?& z7 \% b8 Y& z
  11. ylabel('辛烷值')
    5 d6 G6 L- v& c( h* W

  12. - W2 r( ?) F0 W+ r\" u* C( v
  13. string = {'测试集辛烷值含量预测结果对比(ELM)';['(mse = ' num2str(E) ' R^2 = ' num2str(R2) ')']};
    9 x' n+ a( U) t) M! r9 s& i
  14. 8 t! x9 q0 {: ?8 C
  15. title(string)
复制代码
综合而言,这段代码通过ELM模型对近红外光谱数据进行回归预测,并通过图表展示了预测结果的准确性。
8 y' U+ R7 e- _8 q
& S# _( E. w$ @- i% Y% I! G% } VeryCapture_20231122173210.jpg * E; V# i0 S" z
; f5 S) h9 q8 C

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 11:52 , Processed in 0.438085 second(s), 55 queries .

回顶部