QQ登录

只需要一步,快速开始

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

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

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

1192

主题

4

听众

2946

积分

该用户从未签到

跳转到指定楼层
1#
发表于 2023-11-22 17:49 |只看该作者 |倒序浏览
|招呼Ta 关注Ta
这段MATLAB代码实现了使用极限学习机(Extreme Learning Machine,ELM)进行回归的过程。下面是代码的主要功能和步骤的解释:
; m9 i. J5 ~* \: v1 e! N
6 A+ A  E) H  S6 R6 r4 V$ b, Q' L0 C1.数据加载和划分:
  }3 V6 k: ?+ a7 i5 k
. d+ W0 |) V9 r6 [2.通过加载 spectra_data.mat 文件获取NIR(近红外光谱)和辛烷值数据。; c3 ~0 }3 [, h
3.随机将数据集分为训练集和测试集,其中训练集有50个样本,测试集有10个样本。
  1. load spectra_data.mat
    * _1 v+ i$ T$ y. s

  2. ! p0 }2 D3 H, B: J. a
  3. temp = randperm(size(NIR,1));+ w6 {3 k4 R/ P8 w6 n* `# J

  4. 0 @% o( y: `7 |$ w3 ~. S
  5. P_train = NIR(temp(1:50),:)';
    0 q* h, M3 c+ T& m8 m$ }
  6. / N7 Y7 a\" \9 u
  7. T_train = octane(temp(1:50),:)';
    4 h0 @2 p, L+ y8 N# @\" {0 ?
  8. 5 e! w& P: ]* D$ \! r
  9. P_test = NIR(temp(51:end),:)';
    . @& a7 c! ~% A
  10. 6 p7 e1 O: M. w7 m! J4 x- J
  11. T_test = octane(temp(51:end),:)';0 a& M4 @( Z; A$ @6 `

  12. ) Z& s$ e- r: M- \* Z\" x
  13. N = size(P_test,2);
复制代码
4.数据归一化:" w4 V4 h7 `- y' L+ Y$ _
& k9 [# N. X7 N* e: N
5.对训练集和测试集的输入和输出进行归一化。
  1. [Pn_train,inputps] = mapminmax(P_train);0 I* o7 F$ T1 t1 c/ M

  2. # D6 N+ U4 h9 S- P
  3. Pn_test = mapminmax('apply',P_test,inputps);\" w; |% E% k5 P
  4. 8 y2 v: N, a9 a6 _
  5. [Tn_train,outputps] = mapminmax(T_train);* k4 X) G8 M) p

  6. ! B* a/ d! m9 T: P( y
  7. Tn_test = mapminmax('apply',T_test,outputps);
复制代码
6.ELM模型创建/训练:
  S1 ^5 B' J; ?& Z, P+ G% s( E: }3 y% h

+ k- G* p3 a: b5 C" p; {7.使用 elmtrain 函数创建并训练ELM模型。该模型有30个隐含层神经元,激活函数为sigmoid函数。
  1. [IW,B,LW,TF,TYPE] = elmtrain(Pn_train,Tn_train,30,'sig',0);
复制代码
8.ELM模型仿真测试:
/ d- C$ r, W+ }1 G, r+ Q$ A9.使用 elmpredict 函数对测试集进行仿真测试,得到预测结果。
  1. tn_sim = elmpredict(Pn_test,IW,B,LW,TF,TYPE);
    ( I' X( ^4 ~* @6 {' _. u$ r4 L
  2. ! Y0 P/ `\" I\" o5 J, K6 s
  3. T_sim = mapminmax('reverse',tn_sim,outputps);
复制代码
10.结果评估:1 m5 N) J# B- X
11.将真实值和预测值组合成一个矩阵 result。
4 D, y: a$ x. v( k. r6 u12.计算均方误差(MSE)和决定系数(R^2)。
  1. result = [T_test' T_sim'];
    8 t- s, d8 S( R' o  I  @
  2. + d  h\" e9 j: d4 \9 P
  3. E = mse(T_sim - T_test);
    - m  S  q  @0 p3 o
  4. 5 B! H# X1 O9 m% V3 n/ X! x% k. r
  5. N = length(T_test);* {( K) _8 O: l! W
  6. - o; I; v+ |5 K% t
  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.结果可视化:2 N. i( Z3 R: z1 W! o
14.绘制真实值和预测值的对比图。
" h& f# g: u+ B1 H2 n4 `15.在图标题中显示均方误差(MSE)和决定系数(R^2)。
  1. figure(1)1 `( S+ E& X; {0 ^  ^/ u% u5 f
  2. 8 f9 v+ C+ T% f/ l) X2 B9 y
  3. plot(1:N,T_test,'r-*',1:N,T_sim,'b:o')
    ! b2 \) g! @) T3 y3 O$ O

  4. . t; ?  C$ ], C2 G/ j\" ]- m
  5. grid on- J+ o  k- ]0 @* ?8 }1 ^9 {  x
  6. 7 t! v/ `. H; j- F! G$ p* N) w
  7. legend('真实值','预测值')
    + G9 a. r3 B3 l5 H) v6 Y4 E+ `
  8. + S5 O, ~\" D) D+ ?' }
  9. xlabel('样本编号')
    % x6 d& @% Q$ v. Q9 m\" x( N

  10. 8 b! e: p4 a: U7 a: E
  11. ylabel('辛烷值')% J( ]3 t- }) T# L* ~. {
  12. & s' U- S3 i. k5 [3 T5 _
  13. string = {'测试集辛烷值含量预测结果对比(ELM)';['(mse = ' num2str(E) ' R^2 = ' num2str(R2) ')']};% y; f) B3 {  N  X; x( Z
  14. 7 E+ O2 i( k5 q3 J% L! z( ]
  15. title(string)
复制代码
综合而言,这段代码通过ELM模型对近红外光谱数据进行回归预测,并通过图表展示了预测结果的准确性。
2 m- R# h: e" q9 k) D
* d: H/ B5 B) Q' ?- r5 H VeryCapture_20231122173210.jpg
; j1 X0 {3 S8 Z, ]* |5 U
7 z8 M: z5 U/ z* R! R: N

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-26 00:38 , Processed in 0.420240 second(s), 55 queries .

回顶部