QQ登录

只需要一步,快速开始

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

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

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

1189

主题

4

听众

2934

积分

该用户从未签到

跳转到指定楼层
1#
发表于 2023-11-22 17:49 |只看该作者 |倒序浏览
|招呼Ta 关注Ta
这段MATLAB代码实现了使用极限学习机(Extreme Learning Machine,ELM)进行回归的过程。下面是代码的主要功能和步骤的解释:
0 f' Y0 ~* F1 Y9 {' I/ L/ ~1 |2 F5 j, u+ m' o. m+ L6 q9 [4 h
1.数据加载和划分:
/ z4 }( C; _+ V- r; K/ g1 @: ~; f
" Q! o2 m& n1 o( m8 x3 Y0 Y! @2.通过加载 spectra_data.mat 文件获取NIR(近红外光谱)和辛烷值数据。8 s8 u5 `! J6 T- C) Y
3.随机将数据集分为训练集和测试集,其中训练集有50个样本,测试集有10个样本。
  1. load spectra_data.mat& g( r\" Y4 _0 B  D8 p4 d% u& f' j3 W  Y
  2. $ C' g8 v! s, e6 [: v9 J$ i$ z. N  k
  3. temp = randperm(size(NIR,1));
    7 S8 q7 O# w( I# E; F4 p8 m

  4. - L! t7 x/ X& _; k\" x
  5. P_train = NIR(temp(1:50),:)';
    - w6 ?+ p5 L1 c2 f/ D& _6 ?( W

  6. % u8 m5 W$ z  p8 P3 h
  7. T_train = octane(temp(1:50),:)';
    6 t: K1 L5 J. c% A' r( w

  8. / U; C' N\" d! D$ X: m5 z3 y
  9. P_test = NIR(temp(51:end),:)';
    % i# Y% O% C; t$ S+ ^' s9 G

  10. . P9 n. p* J& i9 a
  11. T_test = octane(temp(51:end),:)';
    ) S% c6 x6 X3 V\" ^7 t# Y
  12. * k, s+ t8 `1 u
  13. N = size(P_test,2);
复制代码
4.数据归一化:' s' X; p8 ?6 a7 @" p5 L  A

$ j" ]* q% s6 K( F/ m* c5.对训练集和测试集的输入和输出进行归一化。
  1. [Pn_train,inputps] = mapminmax(P_train);
    6 q- ~; d- n, s8 R7 o7 i

  2. 2 R\" ^( c7 E2 `$ v: n7 H  z
  3. Pn_test = mapminmax('apply',P_test,inputps);$ _4 x8 l2 V- l  Y5 q1 F* I

  4. ! @* W* A+ c' J# s: f9 s0 B  I
  5. [Tn_train,outputps] = mapminmax(T_train);9 \* s) J3 E9 Y$ O9 d; K8 k
  6. 0 g+ d\" w% p2 {; c
  7. Tn_test = mapminmax('apply',T_test,outputps);
复制代码
6.ELM模型创建/训练:
0 X2 U% Q, h1 @+ N; J5 Q
( V7 X# [5 Y% n4 }( C
1 o% E! t' D8 |8 R9 x7.使用 elmtrain 函数创建并训练ELM模型。该模型有30个隐含层神经元,激活函数为sigmoid函数。
  1. [IW,B,LW,TF,TYPE] = elmtrain(Pn_train,Tn_train,30,'sig',0);
复制代码
8.ELM模型仿真测试:
: R3 ]. \0 m% Y8 o4 J, H; m9.使用 elmpredict 函数对测试集进行仿真测试,得到预测结果。
  1. tn_sim = elmpredict(Pn_test,IW,B,LW,TF,TYPE);' }3 p. o  c9 r
  2. \" |4 X  C5 R' w
  3. T_sim = mapminmax('reverse',tn_sim,outputps);
复制代码
10.结果评估:
+ q( `9 K; J2 N2 l& n* u7 e4 n3 ]11.将真实值和预测值组合成一个矩阵 result。; A8 ?$ f" [2 f, b3 k4 M: J* ^% j
12.计算均方误差(MSE)和决定系数(R^2)。
  1. result = [T_test' T_sim'];% ?; C% y1 }: F: h) f) U+ G- w: O

  2. $ B! K4 s6 K6 z* J
  3. E = mse(T_sim - T_test);3 I4 D\" I# c3 G
  4. , R+ h9 G4 Y2 R* N, {
  5. N = length(T_test);
    9 Q& d: n. t* [2 k& E: [! X
  6. ; z1 f8 P, N9 h1 m$ D
  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.结果可视化:
5 r' N2 Y7 V$ Y- F14.绘制真实值和预测值的对比图。
# F1 c  h; B' g$ r15.在图标题中显示均方误差(MSE)和决定系数(R^2)。
  1. figure(1): i7 @4 G& V+ u+ k* n& ]' ?
  2. 2 V- J$ J0 u# [; k& g, m
  3. plot(1:N,T_test,'r-*',1:N,T_sim,'b:o')  K$ F\" @6 f: H: [/ X7 S
  4. - F: w5 m0 C5 a, g
  5. grid on
    , y/ h' i3 _/ F, W% a
  6. 2 y0 _0 _+ R# N0 W1 \
  7. legend('真实值','预测值')
    : \; A\" I* I& f$ X7 H
  8.   C) J\" r; u) V4 ~& ~) _
  9. xlabel('样本编号')0 j+ j6 E' m2 O4 \4 h2 R
  10. % j- Q; K  ^4 D3 K\" v; @
  11. ylabel('辛烷值')
    5 ~' A; X3 I/ K& v& J; ^
  12. % w0 d  @- a' B( H3 L2 ^
  13. string = {'测试集辛烷值含量预测结果对比(ELM)';['(mse = ' num2str(E) ' R^2 = ' num2str(R2) ')']};\" H1 W' r\" K; D* w  @8 [
  14. : B& i/ Y* O, E7 X9 q6 O
  15. title(string)
复制代码
综合而言,这段代码通过ELM模型对近红外光谱数据进行回归预测,并通过图表展示了预测结果的准确性。9 a0 t& [7 g% u5 y5 r' G! Q

1 M8 o. E3 Y0 X% G% _* R VeryCapture_20231122173210.jpg
+ ~0 O& l2 j' z. f) K! \5 O4 w* R$ u+ A8 S$ H: o) S

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-6-8 15:49 , Processed in 0.546839 second(s), 55 queries .

回顶部