QQ登录

只需要一步,快速开始

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

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

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

1189

主题

4

听众

2934

积分

该用户从未签到

跳转到指定楼层
1#
发表于 2023-11-22 17:49 |只看该作者 |倒序浏览
|招呼Ta 关注Ta
这段MATLAB代码实现了使用极限学习机(Extreme Learning Machine,ELM)进行回归的过程。下面是代码的主要功能和步骤的解释:3 R8 p! \7 r. i( h2 R
: k" u4 |9 V# E, Z3 E
1.数据加载和划分:
, u9 N# @6 e- u. q) {) a' ~
/ i) F' U0 z& [5 U, g# l# I" E* g2.通过加载 spectra_data.mat 文件获取NIR(近红外光谱)和辛烷值数据。
& t, p" E+ M& }7 a( V2 e5 W3.随机将数据集分为训练集和测试集,其中训练集有50个样本,测试集有10个样本。
  1. load spectra_data.mat2 ^% d% Q' x0 u4 ~/ h
  2. - v/ r5 W1 U' F0 q: o( }! Q3 y- O9 Y
  3. temp = randperm(size(NIR,1));
    $ k( W- B/ o' \& b

  4. 5 O5 }# T1 a; x9 b9 z
  5. P_train = NIR(temp(1:50),:)';
    6 G  a! V* @\" w: F

  6. * Q1 c9 U) e, i  w6 S1 V5 A% ~
  7. T_train = octane(temp(1:50),:)';
    0 Y/ x! p. F; y\" }
  8. * t! ]0 d5 J: @, z; `
  9. P_test = NIR(temp(51:end),:)';/ o  \5 v' ^/ Z6 Q

  10. ) m% K, \* {. C9 A( k6 y! O& o
  11. T_test = octane(temp(51:end),:)';
    / n/ U$ _5 }6 u% u
  12. 0 a& @9 A' E3 P# p9 u! ^
  13. N = size(P_test,2);
复制代码
4.数据归一化:
6 }6 j" W# J( R' N/ ^. ]6 K  x" M0 r7 P
5.对训练集和测试集的输入和输出进行归一化。
  1. [Pn_train,inputps] = mapminmax(P_train);
    ; s7 S4 w6 s( q4 i$ M
  2.   w5 W5 H9 ?' l& K3 A
  3. Pn_test = mapminmax('apply',P_test,inputps);
    0 z: |  N' Q: l( v; N

  4. - d1 y\" N8 g0 ~4 G) ]
  5. [Tn_train,outputps] = mapminmax(T_train);\" }% ^* y2 s$ k' [9 T6 ~

  6. , L\" h* q, ]1 Q3 o! J
  7. Tn_test = mapminmax('apply',T_test,outputps);
复制代码
6.ELM模型创建/训练:
  c' A4 N3 T0 t( M" }6 S& a7 |3 @2 _, f) ?9 S( H5 t! [
+ i# F1 Q/ T" y# ]  G
7.使用 elmtrain 函数创建并训练ELM模型。该模型有30个隐含层神经元,激活函数为sigmoid函数。
  1. [IW,B,LW,TF,TYPE] = elmtrain(Pn_train,Tn_train,30,'sig',0);
复制代码
8.ELM模型仿真测试:
1 R6 y6 D: T, [8 I9.使用 elmpredict 函数对测试集进行仿真测试,得到预测结果。
  1. tn_sim = elmpredict(Pn_test,IW,B,LW,TF,TYPE);2 Z. m1 @! j/ f3 e, T7 D9 u9 V) n

  2.   D* V3 P( U\" Y) _4 R) Q8 H\" n
  3. T_sim = mapminmax('reverse',tn_sim,outputps);
复制代码
10.结果评估:, [! J- Y9 f& B0 j$ [' F3 ]! T
11.将真实值和预测值组合成一个矩阵 result。
8 s! {: c' H+ k12.计算均方误差(MSE)和决定系数(R^2)。
  1. result = [T_test' T_sim'];
    \" {% S1 }6 c4 K  Y8 Y

  2. + }7 `2 g\" O\" F\" F  {$ j
  3. E = mse(T_sim - T_test);% x$ @) o* Y1 e3 d7 B9 g\" V
  4. 2 s) y  s8 H& Y& x
  5. N = length(T_test);- {8 }( d) p3 x  N4 Z

  6. ' U4 ^3 j' u0 f/ w4 s( \
  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.结果可视化:
$ p0 N1 k0 x2 t$ M14.绘制真实值和预测值的对比图。
* V3 }; I+ n2 V0 n! o$ p15.在图标题中显示均方误差(MSE)和决定系数(R^2)。
  1. figure(1)  U% K\" R$ S9 a4 r: \
  2. 5 X* \( w- G1 J2 |' Y9 r
  3. plot(1:N,T_test,'r-*',1:N,T_sim,'b:o')
    6 d' e' c* c0 f( u9 I
  4.   d. a; @\" ^4 s4 L  v
  5. grid on  B  o$ s  d1 }9 {\" f8 J

  6.   _, {. t; Q& |% C
  7. legend('真实值','预测值')
    % q4 z9 |\" _& v( O, l
  8. 4 L' P* |( _9 l) k
  9. xlabel('样本编号')
    . y/ o\" _2 V# N; B, E) H

  10. ) o& h! W4 p* ~
  11. ylabel('辛烷值')0 M' c: A# G  c0 k3 L, Y% V6 k4 J

  12. 2 ^) D, V* Y8 p! v\" Z; W* ?
  13. string = {'测试集辛烷值含量预测结果对比(ELM)';['(mse = ' num2str(E) ' R^2 = ' num2str(R2) ')']};: u3 ^+ ?- Y: \3 Y% k. {+ D+ @/ e

  14. + i$ N0 h! N& N6 o) S1 Y4 }% C1 B
  15. title(string)
复制代码
综合而言,这段代码通过ELM模型对近红外光谱数据进行回归预测,并通过图表展示了预测结果的准确性。
' ?$ o, H2 M! f. p$ N/ C* k$ h& G2 d4 V: W
VeryCapture_20231122173210.jpg ; h  \6 F5 q3 X1 z2 |9 h, b6 d( l  B
' c" P  \& j* U  B% K7 t& X

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-8-2 12:03 , Processed in 0.507398 second(s), 55 queries .

回顶部